В прошлой статье мы рассказали о преимуществах использования объектных хранилищ в почтовых системах. Возможность географического разнесения хранилищ, а также эффективное резервирование данных на них делают объектные хранилища одним из наиболее подходящих способов записи WORM‑данных, которыми являются электронные письма, контакты и события календаря. В данной статье мы расскажем о том, как подключить объектные хранилища в качестве вторичного и первичного тома в Carbonio, а также о том, как можно использовать их для хранения резервных копий почтовой системы.
Подключение объектных хранилищ происходит через бакеты — разделы в плоской структуре объектных хранилищ, которые позволяют отделять хранимые пользователями данные друг от друга. Ближайшей аналогией бакетов являются тома — структурные единицы в дисковых хранилищах, в которые ведется запись.
Подключение бакетов в Carbonio можно выполнять как в консоли администратора, так и в командной строке. Данная функция доступна только пользователям коммерческой версии Carbonio.
Добавление бакетов в Консоли администратора
Для добавления нового бакета в графической консоли администратора, необходимо перейти в раздел “Главная - Почтовые Хранилища - Список Бакетов” и нажать на кнопку “Создать +”
В открывшемся меню выберите:
Тип объектного хранилища — для выбора доступны большинство сервис‑провайдеров и возможность подключения пользовательского хранилища;
Метка — метка подключаемого бакета;
Имя блока — название подключаемого бакета;
Ключ доступа;
Секретный ключ;
URL — ссылка на бакет;
Обращение — префикс, который будет добавляться к файлам при записи их в данный бакет. Это позволяет отличать данные записанные Carbonio от данных, записанных в тот же бакет другими приложениями;
Заметки — поле для указания дополнительной информации, касающейся добавляемого бакета.
После того как все необходимые данные будут введены, станет активной кнопка «Создайте и проверьте коннектор». После ее нажатия появится уведомление о результатах проверки, а добавленный бакет появится в соответствующем списке.
После появления активных бакетов в списке доступных для подключения хранилищ, появляется возможность смонтировать в качестве томов почтовой системы. В коммерческой версии Carbonio используются три тома:
Основной — в нем хранится свежая почта;
Вторичный — в нем хранится более старая почта, которая переносится в него на основе политик HSM;
Индексный — в нем хранятся индексные данные Apache Lucene, используемые для индексации и поиска.
Carbonio позволяет добавлять практически неограниченное количество основных, вторичных и индексных томов, однако использоваться системой может только один из каждой категории. Остальные тома при этом будут оставаться неактивными.
Для подключения в качестве одного из томов ранее добавленного бакета, перейдите в раздел “Главная - Почтовые хранилища - Тома данных” и нажмите на кнопку “Новый том +”.
Укажите тип тома “Внешний” и из списка бакетов выберите добавленное ранее объектное хранилище.
На следующем этапе диалога выберите настройки подключаемого хранилища, а именно:
Это первичный том — выберите, если намерены использовать том в качестве первичного;
Это вторичный том — выберите, если намерены использовать том в качестве вторичного;
Префикс — префикс, который будет добавляться к файлам при записи их в данный том;
Включить как текущий — выберите, если намерены использовать том в качестве активного тома для записи данных;
Использовать том как централизованное хранилище — выберите, если намерены хранить в бакете данные с нескольких серверов.
После изменения настроек нажмите на кнопку «Далее» и просмотрите сводку данных по подключаемому тому. Если все соответствует заданным вами параметрам, нажмите кнопку «Создать» чтобы завершить процесс добавления тома.
В нашем случае созданный том является вторичным и данные переносятся на него на основании политик иерархического хранения, настраиваемых администратором.
Настройка политик иерархического хранения
Суть их заключается в том, что письма на первичном хранилище находятся ограниченное количество времени, после чего перемещаются во вторичное, в качестве которых может использоваться более медленный, но при этом более дешевый накопитель, такой как HDD.
Для настройки политики хранения перейдите в раздел “Главная - Почтовые Хранилища - Настройки HSM” и нажмите кнопку “Новая политика +”.
В открывшемся окне можно выбрать сервер, на котором будет применяться политика, какие элементы почтовой системы она будет затрагивать, а также правила, на основе которых выбранные данные будут перемещаться во вторичное хранилище.
На приведенном скриншоте пример настройки политики хранения, при которой письма и документы, которым меньше 3 месяцев, хранятся на основном хранилище, а затем переносятся на вторичное. Также доступен перенос на основании занимаемого места.
После того как все будет настроено, останется только сохранить политику и применить ее к уже имеющимся в системе данным.
Добавление бакетов в командной строке
Добавить бакеты S3 можно и в командной строке. Делается это при помощи команды carbonio core doCreateBucket, выполняемой от имени пользователя zextras. В командной строке доступны для подключения хранилища S3 от следующих провайдеров:
Alibaba
Ceph
OpenIO
Swift
Cloudian
S3
Scality
EMC
Для их подключения необходимо указать наименование провайдера, а также информацию о вашем бакете, такую как имя бакета, ключ доступа, секретный ключ и ссылку на него.
К примеру, команда вида carbonio core doCreateBucket Ceph bucketName accessKey secretKey label url http://host/service позволит создать в системе бакет от провайдера Ceph и присвоит ему идентификатор.
После того как бакет будет создан, его можно подключать в виде первичного или вторичного тома. Команда carbonio powerstore doCreateVolume Ceph email primary 123e4567-e89b-12d3-a456-556642440000 подключит хранилище Ceph с указанным UUID в качестве первичного тома с именем “email”.
Для сторонних провайдеров, поддержки которых нет в Carbonio или для частных объектных хранилищ предусмотрена опция Custom S3. Ее использование ничем не отличается от обычных провайдеров. Пример: carbonio core doCreateBucket CustomS3 bucketName accessKey secretKey label url http://host/service
Для изменения настроек подключенных хранилищ используйте команду doUpdateBucket, а для удаления - doDeleteBucket.
Централизованное хранилище
Обычно при установке Carbonio в мультисерверной инфраструктуре, у каждого почтового хранилища имеется собственные первичные и вторичные тома. Однако Carbonio при использовании объектного хранилища позволяет организовать хранение данных всех почтовых серверов в едином бакете S3. Данная функция называется “Централизованное хранилище”. Централизованное хранилище является обязательным требованием для построения отказоустойчивой почтовой системы. Настройка централизованного хранилища доступна только в командной строке.
Для его подключения требуется создать бакет, который будет служить централизованным хранилищем, а затем подключить его в качестве накопителя ко всем почтовым хранилищам почтовой системы. Пример выполнения команд приводим ниже:
Создание бакета
carbonio core doCreateBucket S3 BucketName X58Y54E5687R543 abCderT577eDfjhf My_New_Bucket
В выводе команды будет уникальный идентификатор данного бакета. Сохраните его.
Проверьте соединение, используя идентификатор полученный в ходе выполнения предыдущего шага
carbonio core testS3Connection 60b8139c-d56f-4012-a928-4b6182756301
В случае успеха вы получите сообщение “Connection ok”
На первом почтовом хранилище создайте том, соответствующий созданному бакету
carbonio powerstore doCreateVolume S3 Store_01 secondary 60b8139c-d56f-4012-a928-4b6182756301 volume_prefix Main_Volume Centralized true
В данном примере указаны:
Тип бакета
Имя бакета
Идентификатор, полученный в первом шаге
Префикс, который будет добавляться к именам файлов в бакете
Явное указание того, что хранилище будет централизованным
Сделайте хранилище активным, чтобы данные записывались в него
carbonio powerstore doUpdateVolume S3 Store_01 secondary current_volume true
После завершения настройки Централизованного тома на одном сервере, необходимо скопировать его настройки на другие почтовые хранилища. Для этого выполните на них следующую команду:
carbonio powerstore doCreateVolume Centralized mailbox_01.example.ru Store_01
В данном примере mailbox_01.example.ru - доменное имя первого почтового сервера, с которого и копируются настройки.
На остальных почтовых серверах также сделайте централизованное хранилище активным
carbonio powerstore doUpdateVolume S3 Store_01 secondary current_volume true
Поскольку все электронные письма, контакты, документы и календари будут храниться в надежном централизованном хранилище, на почтовых серверах будут находиться только данные пользователей. При этом администратор может отдельно для каждой учетной записи настраивать количество серверов, на которых хранятся ее учетные данные. Благодаря этому выход почтовый сервис будет доступен для пользователей даже в случае выхода из строя одного или нескольких хранилищ, а администратор или сервис‑провайдер может регулировать степень отказоустойчивости для каждой из учетных записей, повышая ее для руководителей и понижая для рядовых сотрудников.
По вопросам тестирования, приобретения, предоставления лицензии и консультаций обращаться на почту sales@svzcloud.ru к эксклюзивному партнеру Zextras.