Thunderbolt storage для бедных (updated)

Если у вас новый Mac Pro, у которого очень мало по умолчанию внутреннего стораджа, а вам нужно вести монтаж в Final Cut Pro X (или любой другой, которая нравится) или играть в игрушки, и у вас нет дополнительных денег на что-нибудь типа Promise Pegasus2 M4/M6/M8, то вот более менее самое дешевое решение для расширения хранилища, существующее на данный момент.

Решение подойдет так же для пользователей iMac/Macbook Air/Pro.

Берем корзину HighPoint RocketStor 5212 Dual-Bay Thunderbolt Storage Dock стоимостью 10 075 ₷, thunderbolt кабель + желаемые HDD.
По цене/качеству выбрал SanDisk Extreme Pro 480 c 90000 IOPS и Seagate Constellation ES.3 7200 RPM 128MB cache (enterprise capacity) на 3TB (размер можно брать любой, какой больше нравится).

Получается такая штука (на картинке 2 стакана):

RocketStor thunderbolt

 

Скорость: SSD 530 MBps чтение/380 MBps запись, HDD 170/160 MBps.

Для особо страждующих, можно сконфигурировать  2 SSD в софтверный RAID 1, скорости получаются такие:

RAID 1 two SanDisk SSD Pro

Организация монтажного места:

  • система и весь софт стоят на внутреннем SSD
  • для скорости, исходники можно держать на SSD, а кэши класть на HDD. В этом случае скорость рендера будет максимальной, скорость экспорта – ограничение скорости чтения HDD при выгонке на SSD.
  • или можно наоборот: кэши на SSD, исходники на HDD. В этом случае скорость рендера будет ниже, зато скорость экспорта из FCPX будет максимальная, т.к. отрендеренные кадры уже лежат на SSD.

Если проект получается слишком большой, то вместо SSD можно использовать HDD, на одном держать кэши, на другом исходники.

Upd: пришла запоздалая мысль, что из этой конструкции можно просто Fusion Drive сделать же ш!

(примечание: FD2 у меня называется 2й стакан с дисками для fusion drive, вы можете называть диски как угодно)

# diskutil cs create FD2 disk2 disk3
Started CoreStorage operation
Unmounting disk2
Repartitioning disk2
Unmounting disk
Creating the partition map
Rediscovering disk2
Adding disk2s2 to Logical Volume Group
Unmounting disk3
Repartitioning disk3
Unmounting disk
Creating the partition map
Rediscovering disk3
Adding disk3s2 to Logical Volume Group
Creating Core Storage Logical Volume Group
Switching disk2s2 to Core Storage
Switching disk3s2 to Core Storage
Waiting for Logical Volume Group to appear
Discovered new Logical Volume Group "81647343-A688-42EF-931E-5280482C11C2"
Core Storage LVG UUID: 81647343-A688-42EF-931E-5280482C11C2
Finished CoreStorage operation

# diskutil cs createVolume 81647343-A688-42EF-931E-5280482C11C2 jhfs+ FD2 100%
The Core Storage Logical Volume Group UUID is 81647343-A688-42EF-931E-5280482C11C2
Started CoreStorage operation
Waiting for Logical Volume to appear
Formatting file system for Logical Volume
Initialized /dev/rdisk4 as a 3 TB case-insensitive HFS Plus volume with a 270336k journal
Mounting disk
Core Storage LV UUID: 63908B8B-2C26-4E68-A5B3-28250DC7A679
Core Storage disk: disk4
Finished CoreStorage operation

В итоге у нас в системе появился диск под названием FD2 и разделом FD2 (на скрине раздел у меня называется 3.5TBFD2):

Fusion Drive из SSD и HDD

Скорость чтения/записи равна скорости чтения/записи самого быстрого диска в fusion drive, в нашем случае это SSD:

DiskSpeedTest fusion drive

Для бедных: 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 и подключенной к монитору гигабитной сети)

Для бедных: ATI pc video card и Mac Pro

Успешно заработала PC-видео карта XFX ATI Radeon 6870 на Mac Pro. Работает boot menu, и прочие шняжки. Ранее карта запускалась только после загрузки драйверов, т.е. никакого boot screen, menu и т.д.

Используем этот гайд и перепрошиваем BIOS для своей ATI карты.

 

Milkyway

На какое-то время хватит (свободно еще 15 корзин):

[root@milkyway ~]# df -h
Файловая система      Разм  Исп  Дост  Исп% смонтирована на
/dev/mapper/vg_milkyway-lv_root
                       97G  2,2G   90G   3% /
tmpfs                  16G     0   16G   0% /dev/shm
/dev/sda1             485M   73M  387M  16% /boot
/dev/mapper/vg_milkyway-lv_home
                      438G  199M  415G   1% /home
/dev/mapper/vg_sagittarius-lv_sagittarius
                       14T  165M   13T   1% /media/sagittarius
/dev/mapper/vg_perseus-lv_perseus
                       33T  253G   33T   1% /media/perseus

Ну и конечно же etherchannel:

[root@milkyway ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: fast
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
	Aggregator ID: 9
	Number of ports: 4
	Actor Key: 17
	Partner Key: 1
	Partner Mac Address: 00:1d:46:b0:2b:80

Index   Load   Port     EC state        No of bits
------+------+------+------------------+-----------
  0     00     Gi1/0/7  Passive            0
  0     00     Gi1/0/8  Passive            0
  0     00     Gi1/0/9  Passive            0
  0     00     Gi1/0/10 Passive            0

Тренировки с CSS

Задача:

  1. Поставить большую картинку на бэкграунд, заставить ее заполнить весь экран браузера, при ресайзе – ресайзить бэкграунд.
  2. Сделать 2 колонки: полупрозрачное меню и основной блок. Должны располагаться по середине окна браузера и перемещаться при изменении окна.

И вот что получилось.

Цвет текста в drupal и ckeditor

Чтобы добиться сохранения цвета текста и прочего в drupal при использоваении модуля ckeditor, делаем следующие пляски с бубном (имеется ввиде, что модуль ckeditor установлен и настроен):

  1. Ставим и включаем модуль Wysiwyg_filter.
  2. Создаем новый фильтр ввода (admin/settings/filters), называем его например wysiwyg.
  3. Привязываем роли для использования фильтра.
  4. Включаем следующие фильтры: code filter, HTML corrector, URL filter, WYSIWYG filter.
  5. Далее настраиваем собственно фильтр:
    1. добавляем новый элемент в HTML ELEMENTS AND ATTRIBUTES: span[style]
    2. включаем по желанию дополнительные возможности стилей в разделе Style properties
  6. После этого должно произойти чудо, и ваши стили будут отображаться на сайте.

Костылем Full HTML лучше не пользоваться, или оставить доступ только доверенным пользователям.

Как устроено телевидение

.. или путь новостного ролика от его съемки до вашего телевизора

Originally posted by at Как устроено телевидение

Меня всегда интересовал вопрос, как новость попадает из камеры журналиста в телевизор. Как журналисты готовятся к эфиру? Что ведущие прячут под столом и во что они одеты? Сколько человек скрывается за камерой? Какого размера телевизионные студии и что всегда остается за кадром? Да много у меня было вопросов, связанных с телевидением. Очень хотелось разобраться в этой кухне, поэтому я был очень рад, когда мой читатель предложил организовать экскурсию на новостной телеканал Russia Today
Continue reading Как устроено телевидение

Что лучше – учиться самому или спросить?

Учитесь так, словно вы постоянно ощущаете нехватку своих знаний,
и так, словно вы постоянно боитесь растерять свои знания.

Конфуций

Судьбы у людей очень разные. Программисты не исключение. Один в 40 лет стоит во главе преуспевающей компании, а другой в те же 40 лет остается простым разработчиком. Жалуется на возраст, на то, что с более молодыми тягаться непросто. Идти некуда. Жизнь не сложилась. И т.д. и т.п. Думаю, видели не раз. Отчего так происходит? От чего это зависит? Как этого избежать? Четкого ответа нет. Есть лишь некие мысли на тему, пища для размышления. Этими мыслями я и хочу поделиться.

(отсюда)

Continue reading Что лучше – учиться самому или спросить?