Участник:IvanZakharyaschev/Репликация почтового ящика: различия между версиями

Материал из ALT Linux Wiki
м (→‎схема (что в принципе важно): пояснение про синхронизацию клиентов)
Строка 16: Строка 16:
Было:
Было:


<table class="wikitable">
<table class="wikitable" style="border-right: 0;">


<tr>
<tr>
Строка 30: Строка 30:
<td><code>UIDVALIDITY</code> <code>UID</code></td>
<td><code>UIDVALIDITY</code> <code>UID</code></td>
<th scope="row">IMAP</th>
<th scope="row">IMAP</th>
<td style="border: 0; background-color: white;">IMAP-клиенты</td>
</tr>
</tr>


Строка 35: Строка 36:
<td><code>SyncKey</code>, <code>ServerId</code></td>
<td><code>SyncKey</code>, <code>ServerId</code></td>
<th scope="row">EAS (Exchange ActiveSync)</th>
<th scope="row">EAS (Exchange ActiveSync)</th>
<td style="border: 0; background-color: white;">EAS-клиенты</td>
</tr>
</tr>


Строка 40: Строка 42:
<td>(не интересно)</td>
<td>(не интересно)</td>
<th scope="row">MS Exchange</th>
<th scope="row">MS Exchange</th>
<td style="border: 0; background-color: white;">MS-клиенты</td>
</tr>
</tr>


</table>
</table>
Значения <code>UIDVALIDITY</code> <code>UID</code> (и <code>SyncKey</code>, <code>ServerId</code>) используются для определения состояния синхронизации клиентов с сервером. Разное ПО сервера генерирует их по своим правилам и хранит по-своему. Их смена приведёт к полной пересинхронизации клиентов (с потерей прошлого кэша) -- в общем, переезд на реплику не останется незамеченным.


Будет:
Будет:


<table class="wikitable">
<table class="wikitable" style="border-right: 0;">


<tr>
<tr>
Строка 61: Строка 66:
<td><code>UIDVALIDITY</code> <code>UID</code></td>
<td><code>UIDVALIDITY</code> <code>UID</code></td>
<th scope="row">IMAP</th>
<th scope="row">IMAP</th>
<td style="border: 0; background-color: white;">IMAP-клиенты</td>
</tr>
</tr>


Строка 67: Строка 73:
<td><code>SyncKey</code>, <code>ServerId</code></td>
<td><code>SyncKey</code>, <code>ServerId</code></td>
<th scope="row">EAS (Exchange ActiveSync)</th>
<th scope="row">EAS (Exchange ActiveSync)</th>
<td style="border: 0; background-color: white;">EAS-клиенты</td>
</tr>
</tr>


Строка 73: Строка 80:
<td style="background-color: white;"><s>(не интересно)</s></td>
<td style="background-color: white;"><s>(не интересно)</s></td>
<th scope="row"><s>MS Exchange</s></th>
<th scope="row"><s>MS Exchange</s></th>
<td style="border: 0; background-color: white;"><s>MS-клиенты</s></td>
</tr>
</tr>


</table>
</table>

Версия от 14:21, 12 июля 2016

Понятно, что сохранение копии "почтового ящика" само по себе не представляет большой ценности: нужно уметь её использовать -- хотя бы читать клиентом, а лучше начать предоставлять сервером клиентам. Такая задача имеет место как при создании резервной копии (которую мы должны уметь начать использовать, если что), так и при миграции со старого ПО на новое ПО сервера почтового ящика.

background

Я раньше уже интересовался близкой задачей --:

  • поле для изучения там было более общее и открытое: искался любой инструмент для сохранения IMAP-ящика, возможно, без иного доступа (кроме IMAP) к внутреннему хранилищу сервера почтового ящика;
  • но задача, касающаяся возобновления работы клиентов с сохранённой резервной копией (со своим иным IMAP-сервером), ставилась только для IMAP-клиентов.

Сейчас в этих заметках нас интересуют более конкретные вещи.

  • Мы как бы обладаем полным доступом к хранилищу текущего сервера (правда, засекреченного -- с одной стороны; с другой стороны -- с возможно несовершенным IMAP).
  • Протоколы общения с клиентами -- не только один IMAP.
  • Какое ПО будет использоваться, чтобы запустить новый наш сервер почтового ящика, тоже более-менее определено.

схема (что в принципе важно)

Было:

хранилище
данных почтового ящика
ПО
сервера почтового ящика
дополнительные мета-данные
про ящик
протокол
обращения клиентов
внутреннее хранилище старое ПО (MS Exchange) UIDVALIDITY UID IMAP IMAP-клиенты
SyncKey, ServerId EAS (Exchange ActiveSync) EAS-клиенты
(не интересно) MS Exchange MS-клиенты

Значения UIDVALIDITY UIDSyncKey, ServerId) используются для определения состояния синхронизации клиентов с сервером. Разное ПО сервера генерирует их по своим правилам и хранит по-своему. Их смена приведёт к полной пересинхронизации клиентов (с потерей прошлого кэша) -- в общем, переезд на реплику не останется незамеченным.

Будет:

хранилище
данных почтового ящика
ПО
сервера почтового ящика
дополнительные мета-данные
про ящик
протокол
обращения клиентов
Maildir dovecot UIDVALIDITY UID IMAP IMAP-клиенты
SOGo SyncKey, ServerId EAS (Exchange ActiveSync) EAS-клиенты
- (не интересно) MS Exchange MS-клиенты