Разобрал Луна-Парк

В рамках оптимизации бюджета на всякую нежизненноважную IT-хрень и под воздействием лени, я признал, что у меня нет сил и жалко денег не содержание двух виртуалок и дедика и домашнего сервера. Из двух виртуалок оставил одну, от дедика отказался, а сервер в кладовке не просит каши и живет бесплатно. Почта переехала в Google Apps, оказалось удобно и существенно дешевле: даже жаль, что я прошляпил момент, когда она этот сервис был бесплатен до 50 пользователей. Виртуалочка же останется для жизненно необходимого в наши дни exit-point’a и хостинга доков/статей, которые тут всегда валялись, перепосчу их. Блог все равно хоть кто-то читает/комментирвует только в ЖЖ/Facebook, пусть уж так и живет. Купленные в “тучные годы” смешные домены тоже не буду продлять.

Как я делал телевизор на кухне из Samsung’a ue40c6510uw, WD TV Live и 802.11n

Проект

Я планировал пойти по легкому и универсальному пути: панель + компьютер. Преимущества очевидны: гибкость и всеядность компьютера как плеера + возможность пользоваться им для других целей. Недостатки тоже есть: обилие не уместных проводов, наличие клавиатуры и мышки, нетривиальность подключения “телевизионного” пульта ДУ, невозможность совершенно бесшумного решения, цена. Continue reading

Time Capsule своими руками за 2 часа и 5000р

Задача

У меня есть macbook, старенький по нынешним временам, но любимый. С ростом объемов баз Aperture и iTunes проблема резервного копирования встала довольно остро, для чего был в свое время приобретен WD mybook на 500 Гигабайт и Hitachi с USB-коробкой на 400. Хитачи использовался как диск с данными, а WD для резервного копирования Time Machine, подключалось же все по USB. Данная схема меня не устраивала обилием проводов и привязкой к столу: отключаясь от USB я терял связь с накопителями, пойти на кухню с ноутбуком и музыкой я не мог. Я решил сделать файловый сервер, который бы раздавал нужные мне файлы по сети, скажем через WiFi. Здесь обнаружились некоторые проблемы:

• если я буду раздавать файлы по NFS или CIFS, то сами носители мне придется как-то конвертировать из HFS+ в ext3. На сколько мне известно, единственный способ, это стереть и разметить заново, что с 250Gb нужных данных как минимум муторно.
• если я буду раздавать файлы по NFS или CIFS, то TimeMachine будет игнорировать эти диски и как объекты для резервного копирования, и как ресурсы для резервного копирования.
• Spotlight не будет правильно работать с CIFS.

Конечно, я могу реализовать Time Machine своими руками на bash’е, cron’e и rsync’е, но знание решения этой задачи делает ее неинтересной. Кроме того, Time Machine просто работает ™ и тесно интегрирована с различными программами Apple. Удобная она. Решение мне подсказали коллеги, надо использовать iSCSI, который работает на уровне устройства и отдает файл или дисковый массив с сервера (так назваемый target) на клиент (initiator) как блочное устройство. Для клиента такой диск ничем не отличается от локально подключенного SCSI-устройства, что решает мои проблемы.

Специальные требования

В целях борьбы с гаджетоманией и косньюмеризмом бюджет был определен в 5000р максимум без учета стоимости накопителей, что дешевле Time Capsule в несколько раз. Решение не должно иметь ни одного вентилятора, а желательно чтобы оно не имело движщихся частей вообще.

Аппаратная часть

Я знал, что один мой коллега когда-то делал беспроводную точку доступа, совмещенную с файловым сервером своими руками, но что-то у него не заладилось и компьютер отправился на шкаф. В результате за символические деньги мне досталась старая безвентиляторная VIA Epia c процессором VIA Samuel-2 в хорошем корпусе и 128 мегабайт оперативной памяти к ней. Конечно, следовало бы купить Intel D301GLY, цена которой в Москве 1500р, Mini ITX корпус (еще 1500-2000р) и память DDR II (еще около 1000р). Оставшиеся деньги можно вложить в карточку WiFi и flash, с которой будет загружаться операционная система. Я просто взял флешку, которой не часто пользовался, а WiFi у меня раздает роутер Asus WL-500W. Если роутера нет, то можно использовать свободный PCI-слот для сетевой карты с несколькими портами, а WiFi повесить на USB или использовать Apple Airport Express, что вплотную приблизит нас к формфактору Time Capsule.

Замечу, что даже с учетом роутера, даже более дорогого гигабитного LinkSys и жесткого диска, вся система получается дешевле оригинального Time Capsul и функциональнее ее, хотя и больше по размеру.

Можно также в качестве платформы использовать Ausus EEEPC или просто старый ноутбук.

Программная часть

В качестве операционной системы был использован Debian Etch в минимальной конфигурации и build essential для сборки сервера. Для Linux есть реализация iSCSI-target, то есть сервера,http://iscsitarget.sourceforge.net/. С раздела downloads требуется скачать архив, так как готовой сборки нет, распаковать его, выполнить make && make install. Все проходит без ошибок, собственно, сервер вполне готов к работе.

Конфигурационный файл iSCSI-target находится в /etc/ietd.conf. Единственные строчки, играющие принципиальное значение на этапе тестирования нашей системы, это имя ресурса, которое вообще говоря может быть любым, и запись вида Lun 0 Path=/dev/sda, где /dev/sda – устройство, которое мы собираемся отдавать. Клиентом на Macintosh будет globalSAN iSCSI initiator, который совершенно бесплатен. Для Windiws есть также бесплатный Microsoft iSCSI software initiator. Обе программы обладают очевидным интерфейсом: надо вписать IP сервера на 1й вкладке и выбрать Lun по имени на второй, после чего в системе появится еще 1 жесткий диск, который можно разбивать, форматировать или использовать уже существующие разделы.

Так как все мои компьютеры находятся в 1й локальной сети без доступа извне, то шифрования канала и авторизации я не делал, хотя iSCSI поддерживает CHAP, а сам iSCSI можно инкапсулировать в IPSec, если вы хотите работать со своими дисками скажем издалека.

Производительность и результат

Что тут можно сказать? Даже моя откровенно слабая и старая VIA Epia огараничена сверху производительностью сети, скорость работы с диском чуть менее 100 мегабит в секунду. Кеширование диска происходит и на стороне клиента и на стороне сервера, так что больший объем оперативной памяти на сервере – лучше. Aperture стала заметно быстрее работать с коллекцией, точнее, ее работа перестала сказываться на отклике самого ноутбука. Time Machine сразуже опознала свой старый диск и синхронизировала резервную копию. Теперь я могу ходить с ноутбуком по всему дому не теряя связи со своими накопителями.

Как строить системы резервного копирования

Как вы знаете, я упоролся по безопасности и надежности, по этому я пробовал несколько систем резервного копирования с заявленным бесконечным объемом сохранения. DISCLAMER: описанное ниже не относится к новому сервису Amazon, есть вероятность подозревать, что они не пидарасы в плохом смысле.

Итак, простые рецепты как сделать для пользователей бесконечное пространство для хранения резервных копий по 5-10 баксов в месяц? Легко!

Первое, что вам понадобится, это выбор правильного языка программирования. Например, Java подойдет, этим вы убьете сразу двух зайцев. Во-первых, будет “кросплатформенно”. Во-вторых, оно может быть сколь угодно тормозной, падающей на ровном месте программой: все равно энтерпрайзно.

Но главный момент: как сделать “бесконечный ресурс” за недорого?! Ответ прост! Во-первых, rate limit рулит: на Crashplan или AltDrive вам больше 10 ТБ в год не вкачать никак. Во-вторых, если вы хотите быть быстрее Crashplan, просто сделайте интерфейс, которым нельзя пользоваться: AltDrive не дает восстановить ни один файл, пока не будет завершен полный бекап (в моем случае речь идет примерно о 6-8 месяцах работы).

Горите в аду, я скорее куплю неновый mac mini, подключу к нему NAS как SAN по iSCSI или дождусь клиента Amazon под linux.

Домашний Роскомнадзор

Вообще-то я против всяких ограничений и фильтраций, особенно, я против ограничений, которые на меня спускают всякие левые личности без совести, ума и чувства меры. Но дома есть проблема: умения и интерес детей значительно опережает их чувство меры. Опытным путем было выяснено, что включившаяся по расписанию политика вызывает меньше протеста у Димы, чем отбирание/выключение физического устройства (Света уже достаточно взрослая, что бы ей можно было просто сказать).

С технической стороны, сделал все при помощи Squid proxy и Diladele, который был выбрана за простоту работы/настройки, довольно качественный анализатор и низкую цену, 12 евро в год. Что он умеет полезного:

  • классифицировать URL как приналдежащий к какому-то классу;
  • разбивать пользователей по именам/IP/сеткам и засовывать их в политики;
  • включать политики по расписанию;
  • настройка адблока, фильтров трекеров и прочего ненужного – отдельно в каждой политике, удобно, что она не смешана с классификатором. Лист отдельно на Рунет – есть;
  • так как он глобальный, то не зависит от устройства, а трекеры и рекламу я хочу резать везде;
  • отчеты, но не очень информативные;
  • выключить сайт из ICAP’а можно через интерфейс, чтобы, например, банк-клиент вообще не попадал в проверки никогда.

Что он умеет бесполезного:

  • MitM так как везде (кроме банк-клиента Ситибанка, лол) HSTS
  • классификацию по содержимому URL, по содержимому страницы, JS и картинок (определяет наличие текстуры кожи на картинке). По мне – это все источник ложных срабатываний.

Squid дома

Поставил дома прокси, чтобы наводить политику на детский iPad: хочется иметь возможность блокирования конкретного доставшего видео в Youtube без блокировки всего Youtube и глобально навести баннерорезалку на все, даже туда, где она не предусмотрена производителем. Дело в том, что Youtube постоянно предлагает одни и те же песенки и одни и те же мультики, наизусть можно выучить. Попутно выяснилось (не то чтобы это все для меня было новостями), что:

– есть открытые решения, но заброшенные: Rejik, SquidGuard и т.п.

– бесплатный классификатор ровно один, называется Adblock+, все советуют импортирвать баннеры из него. Не удобно!

– есть платные классификаторы, за вменяемые деньги, Diladele, например. 12 евро/год на 10 компов.

– HSTS работает, блин, со своим MitM’ом на сквиде я обломался. Собственно, трекать собственный HTTPS мне ни за чем не надо, решил посмотреть работает ли оно.

Обновил домашние системы

Дошли руки обновить сервер с CentOS 6.5 до 7. systemd, конечно, но с древнего SSD Intel 520 (SandForce) на 160GB (раньше он стоял в iMac’е) система грузится практически моментально. Самое длительное в процессе – загрузка bios’а RAID-контроллера. Выяснил, что теперь дистрибутив в виде образа ISO просто можно закатать на флешку через dd, а Unebootlil’ом наоборот, пользоваться нельзя. Узнал, что BSD’шный dd не умеет мегабайты в виде “M”, а букву “m” тихо игнорирует, странно. Зато новая samba без проблем съела конфиг старой и все сразу и без вопросов поднялось. К стыду, опять отключил SELinux.

Обновил и XBMCBuntu до Kodibuntu. Резервную копию настроек от XBMC (Frodo) Kodi не сожрал, статистика просмотренных потерялась.

В результате новая самба на сервере и новая самба на клиенте -> ушло раздражающее залипание при включении.

Обновился по хардкору

Внезапно все снес к чертям нафиг без реальных возможностей плавной миграции. Заодно выяснил:

– резервная копия была всего, кроме почты коллеги :-(. Стыдно!
– устанавливать веб-приложения yum’ом из репозитория – простой способ невосполнимо утратить к черту всю кастомизацию что была. Не надо так!
– переезд обратно на iCloud привел к тому, что я перестал пользоваться сервером и там все развалилось. Надо переезжать обратно, чтобы держать систему и себя в тонусе.

Восстановил почти все.