Для бедных: XSAN over iSCSI

Apple XSAN поверх iSCSI и линуксовый сервер хранения пока на гигабитной сети, в планах переход на 10GB Ethernet.

Серверная часть

Hardware:

Сервер хранения:

Подключение к Cisco Catalyst 3750 4x1GB etherchannel.

Mac mini – метадата-контроллер для нашей SAN и другие плюшки, достаточно самой дешевой версии.

Software:

CentOS 6.4 на сервере хранения, OS X Mountain Lion 10.8.4 Server на Mac mini.

Схема разделов:

  1. vg_milkyway: RAID 1 из 2х 600 GB SAS дисков.
  2. vg_perseus: RAID 6 из 11 4TB SATA.
  3. vg_sagittarius: RAID 5 из 6 3TB SATA.
[root@milkyway]~# lvscan
 ACTIVE '/dev/vg_perseus/lv_perseus' [32,74 TiB] inherit
 ACTIVE '/dev/vg_sagittarius/lv_sagittarius_mac' [7,00 TiB] inherit
 ACTIVE '/dev/vg_sagittarius/lv_sagittarius_xsan' [4,54 TiB] inherit
 ACTIVE '/dev/vg_sagittarius/lv_sagittarius_xsan_metadata' [100,00 GiB] inherit
 ACTIVE '/dev/vg_sagittarius/lv_sagittarius_xsan_audio' [1,00 TiB] inherit
 ACTIVE '/dev/vg_sagittarius/lv_sagittarius_xsan_other' [1,00 TiB] inherit
 ACTIVE '/dev/vg_milkyway/lv_home' [443,99 GiB] inherit
 ACTIVE '/dev/vg_milkyway/lv_root' [97,66 GiB] inherit
 ACTIVE '/dev/vg_milkyway/lv_swap' [15,73 GiB] inherit

Для чего именно так: понятно, системные разделы на «быстрых» SAS 15K в зеркале. RAID6 для большого и надежного хранения, нам скорость записи не сильно важна, важна сохранность данных. RAID5 – для видео монтажа с использованием нескольких одновременных монтажных станций с Final Cut Pro X , тут нам нужна и надежность и хорошая скорость записи.

Сетевое  хранилище экспортируем с помощью AFP/Samba, тут ничего военного. Сам сервер подключен к AD и авторизует пользователей из AD.

Теперь самое интересное. vg_sagittarius нарезан на 2 LV-тома, которые экспортируются по iSCSI (почему – объясню позже).

Примечание: реализация ext4 в текущей версии RHEL/CentOS не поддерживает размер тома больше 16 ТБ, поэтому  lv_perseus содержит XFS раздел, где данным хорошо и комфортно.

Клиентская часть

Клиентами выступают 3 Mac Pro с OS X Mountain Lion 10.8.4 в качестве станционарных монтажных станций, несколько MacBook Pro для монтажа «на ходу», то бишь дома.

Почему именно iSCSI ? Final Cut Pro X не умеет работать с сетевыми дисками, ни с smb, ни с afp, ни с nfs. Умеет только через SAN. Поэтому будем городить огород и поступать как взрослые: создадим SAN, только вместо fiber channel будем использовать iSCSI ввиду дешевизны. Понятно что скорость меньше, но когда будет 10GB Ethernet, тогда посмотрим – кто кого :).

OS X умеет подключаться по iSCSI с помощью globalSAN iSCSI Initiator. Стоит недорого – 89$ за лицензию. Есть триальная версия на 15 дней.

Если подключать одну рабочую станцию к iSCSI диску, то тут никаких проблем. Просто прописываем экспортированный диск и получаем у себя локальный большой сторадж. А если надо осуществить одновременный доступ к хранилищу с нескольких рабочих станций, да еще и с возможностью записи (как вы понимаете, когда 2 компьютера начнуть одновременно писать на блочное устройство, будет очень весело файловой системе 😉 ), то тут надо строить SAN.

Есть 2 способа: простой и средне дешевый и посложнее, но более дешевый.

1й способ

Чтобы не использовать выделенный метадата контроллер, можно воспользоваться софтиной SANmp от все тех же studionetworksolutions. Смысл тут простой: само ПО следит за тем, чтобы никто не поломал нам файловую систему, занимается разграничением доступа и тд.
Принцип работы можно посмотреть здесь: cost-efficient volume sharing with SANmp. SANmp client demo, SANmp admin demo.

Минусы этого способа:

  1. смонтировать на запись одновременно с двух рабочих станций нет никакой возможности.
  2. стоимость лицензии 499$ за рабочее место (итого 5×499$ = 2495$), плюс требуется USB HASP key, что в условиях России и ее почты совсем не вариант. Тут следует отметить, что iSANmp (работа только по iSCSI) дешевле, но я не нашел цифр.

Плюсы:

  1. не надо использовать дополнительное железо;
  2. простота в использовании и администрировании: домохозяйка сможет настроить посмотрев 2 ролика на youtube.

2й способ

Вспоминаем про существование продукта Apple Xsan.
Наверное есть какие-то другие решения, но я про них ничего не знаю и в жизни не встречал, плюс нам нужно создать сеть из монтажных постов именно на маках.

Раньше XSAN сервер стоил 999$ для сервера плюс надо было покупать лицензию на каждое клиентское место.
Сейчас, что самое важное, OS X начиная с версии 10.7 содержит XSAN внутри себя совершенно бесплатно. XSAN Admin появляется при покупке за дополнительные 19,99$ пакета OS X Server из Mac App Store.

Минусы:

  1. выделенный OS X Server в качестве метадата-контроллера
  2. более сложная настройка всех компонент, простым роликом тут уже не обойтись, надо прочитать Xsan administration guide.

Плюсы:

  1. общая стоимость решения – стоимость самой дешевой версии Mac mini и 19,99$ на OS X Server.

После прочтения мануала на Xsan собственно строим наш сторадж:

  1. Как показано на примере выше (lv_sagittarius_xsan[XXX]), нарезаем на RAID5 несколько томов, они у нас станут различными LUN. В моей конфигурации сразу понятно, какой LUN на какой affinity будет использоваться при создании Xsan Volume.
  2. Экспортируем один iSCSI target с 4-мя LUNами.
  3. Настраиваем globalSAN iSCSI Initiator на экспортированный target.
    globalSAN iSCSI target
    globalSAN iSCSI target

    Если открыть дисковую утилиту, у нас появятся несколько жетских дисков:

    Disk Utility with Xsan disks
    Disk Utility with Xsan disks
  4. В Системных Настройках появится новый пункт Xsan
    Xsan System Preference
    Xsan System Preference

    Включаем поддержку Xsan.

  5. Добавляем нового клиента в Xsan Admin Tool и вуа-ля:
    Mounted Xsan Volume
    Mounted Xsan Volume

    Особо внимательне могли заметить уже смонтированный Xsan том в Дисковой Утилите 🙂

В качестве примечания. В чем прелесть использования LVM ? А в том что можно расширять физическими дисками по мере заполнения и расширять том без каких-либо сложностей.

Скорость записи на гигабитной сети – 100-105 мегабайт в секунду, что нам и требовалось:

Activity monitor: network utilization
Activity monitor: network utilization

(скорость мерялась на MacBook Pro Retina с Apple Thunderbolt Display и подключенной к монитору гигабитной сети)