Участник:IvanZakharyaschev/Репликация почтового ящика: различия между версиями
м (→схема (что в принципе важно): оформление) |
м (→схема (что в принципе важно): пояснение про синхронизацию клиентов) |
||
Строка 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
UID
(и SyncKey
, ServerId
) используются для определения состояния синхронизации клиентов с сервером. Разное ПО сервера генерирует их по своим правилам и хранит по-своему. Их смена приведёт к полной пересинхронизации клиентов (с потерей прошлого кэша) -- в общем, переезд на реплику не останется незамеченным.
Будет:
хранилище данных почтового ящика |
ПО сервера почтового ящика |
дополнительные мета-данные про ящик |
протокол обращения клиентов |
||
---|---|---|---|---|---|
Maildir | dovecot | UIDVALIDITY UID |
IMAP | IMAP-клиенты | |
SOGo | SyncKey , ServerId |
EAS (Exchange ActiveSync) | EAS-клиенты | ||
- |