August 21st, 2011

Дневниковое, сисадминское

Есть такая компания Novell. В своё время произвела революцию в бизнес-сетях, и первыми вышла на рынок с приличной службой каталогов, выпустив eDirectory (тогда ещё называемую Novell Directory Services) в 1993 году, и выпустила замечательный, для своего времени продукт Novell Netware.

Что-то сравнимое по фичам Microsoft смог выкатить только в 1996 году с выпуском Windows NT 4.0, хотя в нём ещё не было Active Directory. Active Directory появилась только в 2000 году.

Но с недавних пор Novell стремительным домкратом заезжает на собственном заду в выгребную яму. Примерно туда же едет Lotus Notes и прочие продукты. Слишком велико давление Microsoft, выпускающих раз за разом всё более совершенные серверные системы.

Novell удивительным образом остаётся до сих пор жив в образовательных и медицинских учереждениях. Так, в моём ведении находятся 5 серверов под управлением их операционных систем.

Самым лучшим их продуктом была таки Netware. Это практически идеальная серверная ОС. Мало требующая, очень устойчивая (у меня есть сервер с аптаймом более двух лет). С поддержкой железа у неё вот только туговато (ну ленятся производители железа писать драйвера под Netware), поэтому основой для новых релизов OES (серверного компонента) Novell выбрали Linux, в таре Suse. В-общем-то, это и было переломным моментом, и как раз с этого момента заезжание в выгребную яму сильно ускорилось. Многие сисадмины предпочли перевести свои системы на Windows, вместо того, чтобы переучиваться с синих менюшек Netware и DOS-овских конфигов (в Netware до сих пор есть config и autoexec :) под спартанские окна SSH и совершенно незнакомые им юниксные команды.

Первая версия нового OES, работающего на базе Suse Linux 9, была абсолютно аховой. У меня работает один такой сервер. Аккуратнейшим образом зависает раз в месяц. Причём, намертво -- по ssh не зайти, только рубить питание.

Suse 10 и OES2 были уже несколько получше. Но всё равно, как файл-сервер -- так себе. Клиенты периодически полностью теряют с ним связь, диски иногда не монтируются. Чтобы заставить всё это работать, периодически надо какое-то колдунство (ndsrepair -- какого, спрашивается, лешего? чему там, блин, ломаться, и по какому поводу там искажется информация?) В отличие от Windows 2008 R2, в которой практически всё работает сразу как надо. Из коробки нету никакого подобия групповых политик. За отдельные деньги можно купить Novell Zenworks, но на триста пользователей получается сильно накладно.

Поэтому последние несколько месяцев я трачу все свои усилия на работе, чтобы забыть Novell как страшный сон. Занимаюсь массовой миграцией данных. Так, вчера (т.е. в субботу) проторчал на работе до полночи, перетаскивая туда-сюда пользовательские файлы.

Очень какая-то несовершенная файловая система у Novell'a. Или это в Linux так? ОЧЕНЬ долго переписывается большая коллекция маленьких файлов. 34 гигабайта я переписывал... ну часов 5! Это менее, чем 2 мегабайта в секунду! Это, между прочим, не на чём-то, а по Fibre Channel. Я бы ещё понял, если бы с какого-то древнего жёсткого диска переписывал.

Выяснилось, что СУЩЕСТВЕННО быстрее (в 3-5 раз) копировать множество мелких файлов через tar, а не через cp.

Видимо, файлы как-то представляются тогда сплошным потоком, вместо "нарезки", и получается быстрее. Вот как это делается:

Будучи в директории, откуда надо переписать, даёшь вот такую команду:
tar cvf - * | ( cd /куда_надо; tar xfp -)

Ещё неплохо получается rsync'ом, но несколько медленнее. rsync сначала всасывает в себя всё древо директорий, которое он будет переписывать, составляет список -- что может занять некоторое время. И копируется тоже медленнее. Поэтому лучше -- сначала скопировать tar'ом, а потом -- пройтись rsync'ом, чтобы с гарантией синхронизировать директории:

rsync -av откуда/ куда/

Вот будет война, когда мне надо будет перетаскивать ЧЕТЫРЕ ТЕРАБАЙТА пользовательских директорий с Novell'a на сервер Windows 2008 R2, а??? :-)))))) Раскладушку надо будет в офис, не иначе!

Вдогонку к предыдущему посту

Тебе интересно, а откуда у меня 4 терабайта данных?

Медицинский снимок в цифровом формате может легко занимать и 100 и больше мегабайт. Он часто делается с такой разрядностью, что обычный монитор (да и не обычный, наверное, тоже) не может отобразить его, слишком высок динамический диапазон. Поэтому у просмотрщика таких файлов есть крутилка -- "сделать ярче - сделать темнее". Выкручиваешь яркость на полную -- и там, где вроде как была темнотища, начинают проступать детали. Укручиваешь в полную темноту -- там, где был равномерный белый цвет -- оказывается, тоже есть детали! Доктор, читая снимок, постоянно крутит крутилку, подстраивая под то, что он в данный момент ищет. Кроме того, файлы могут быть 3d.

Вот тут можно скачать образцы:

http://pubimage.hcuge.ch:8080/

Как сгрузить дерево файлов с вебсервера

Ну, разумеется, нашим родным wget'ом.

А что делать, если оно защищено паролем, и надо заходить через браузер?

Если используется http аутентификация, можно попробовать wget username:password@host

А если там форма с логином на сайте, то аутентификация делается через cookies -- а их можно сохранить из браузера в файл и скормить wget'у:

Скачиваем export cookies штепсель для Firefox:

https://addons.mozilla.org/en-US/firefox/addon/export-cookies/

Сохраняем cookies в файл.

Затем даём вот такую команду:

wget --load-cookies=файл_с_куками --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:5.0) Gecko/20100101 Firefox/5.0" --mirror -p --convert-links -P куда_класть http://откуда_скачивать

Юзерагента менять не обязательно, но я рекомендую -- для усыпления бдительности сисадмина :) Если бы я увидел в логе wget, я бы насторожился.