вторник, 30 августа 2011 г.

Обновление пакетами: что делать, если сломали перл

Решили поставить/обновить например glib? Если обновлять пакетами (например portinstall -PP devel/glib20), можно увидеть такое:


---> Checking for the latest package of 'devel/glib20'
---> Fetching the package(s) for 'glib-2.28.8' (devel/glib20)
---> Fetching glib-2.28.8
/var/tmp/portupgradetCmzSZ97/glib-2.28.8.tbz 100% of 3095 kB 724 kBps
---> Downloaded as glib-2.28.8.tbz
---> Identifying the package /var/tmp/portupgradetCmzSZ97/glib-2.28.8.tbz
---> Saved as /usr/ports/packages/All/glib-2.28.8.tbz
---> Found a package of 'devel/glib20': /usr/ports/packages/All/glib-2.28.8.tbz (glib-2.28.8)
---> Located a package version 2.28.8 (/usr/ports/packages/All/glib-2.28.8.tbz)
---> Installing 'glib-2.28.8' from a package
---> Installing lang/perl5.12 as dependency required by glib-2.28.8
---> Checking for the latest package of 'lang/perl5.12'
---> Fetching the package(s) for 'perl-5.12.4_1' (lang/perl5.12)
---> Fetching perl-5.12.4_1
/var/tmp/portupgradeyshhUlQo/perl-5.12.4_1.tbz100% of 14 MB 986 kBps 00m00s
---> Downloaded as perl-5.12.4_1.tbz
---> Identifying the package /var/tmp/portupgradeyshhUlQo/perl-5.12.4_1.tbz
---> Saved as /usr/ports/packages/All/perl-5.12.4_1.tbz
---> Found a package of 'lang/perl5.12': /usr/ports/packages/All/perl-5.12.4_1.tbz (perl-5.12.4_1)
---> Located a package version 5.12.4_1 (/usr/ports/packages/All/perl-5.12.4_1.tbz)
---> Installing 'perl-5.12.4_1' from a package
---> Installing the new version via the package
pkg_add: package 'perl-5.12.4_1' conflicts with perl-5.10.1_3
pkg_add: -f specified; proceeding anyway
Removing stale symlinks from /usr/bin...
Removing /usr/bin/perl
Removing /usr/bin/perl5
Done.
Creating various symlinks in /usr/bin...
Symlinking /usr/local/bin/perl5.12.4 to /usr/bin/perl
Symlinking /usr/local/bin/perl5.12.4 to /usr/bin/perl5
Done.
Cleaning up /etc/make.conf... Done.
Spamming /etc/make.conf... Done.
Cleaning up /etc/manpath.config... Done.
Spamming /etc/manpath.config... Done.

Первое - НЕ ПАНИКОВАТЬ! Не пытаться срочно переустановить старый перл и так далее. Он на месте и полностью рабочий, и чинится за минуту.
1) Узнать старую версию перла
pkg_info |grep perl-5
Теперь для каждого смотрим информацию о зависимостях (Required by:)
pkg_info perl-5.10.1_3
У которого их много - это наша старая версия.

2) восстановить симлинки
cd /usr/bin/
unlink perl*
ln -s /usr/local/bin/perl5.10.1 perl
ln -s /usr/local/bin/perl5.10.1 perl5
На самом деле, надо ещё поправить: в /usr/local/bin перезаписывается perl и perl5, причём perl5 симлинк, а вот perl - файл.
rm /usr/local/bin/perl
unlink /usr/local/bin/perl5
cp /usr/local/bin/perl5.10.1 /usr/local/bin/perl
ln -s /usr/local/bin/perl5.10.1 /usr/local/bin/perl5

vi /etc/make.conf
исправляем версию перла..
vi /etc/manpath.config
тоже самое

Всё, перл вернули назад.

четверг, 25 августа 2011 г.

WiMesh - IEEE 802.11s

Wireless Mesh Network или стандарт IEEE 802.11s (версия 1.0)
Для Linux выпущены драйверы для mesh-сетей, соответствующих последней версии стандарта 802.11s
http://en.wikipedia.org/wiki/IEEE_802.11s

Легко эксплуатируемая DoS-уязвимость в HTTP-сервере Apache

В http-сервере Apache найдена опасная уязвимость, позволяющая вызвать отказ в обслуживании через исчерпание всей доступной памяти. Опасность уязвимости усугубляется тем, что для её осуществления уже доступен готовый эксплоит, позволяющий совершить атаку с одной машины с генерацией минимального трафика. При отсутствия отдельных лимитов на размер выделяемой Apache памяти, после выполнения эксплоита наблюдается полное исчерпание памяти с уходом в бесконечный своппинг без возможности зайти в консоль.

Проблема вызвана ошибкой в реализации поддержки загрузки части файла по указанному диапазону (например, после обрыва соединения можно запросить загрузку начиная с определенной позиции). Ошибка связана с тем, что при обработке запроса, содержащего большое число диапазонов (например, "Range:bytes=0-,5-1,5-2,5-3,...,5-1000"), расходуется слишком много памяти. Для осуществления удачной атаки достаточно отправить около 50 подобных запросов на сервер.

Проблема присутствует в Apache 2.2.x, включая последний релиз 2.2.19. Исправление пока доступно в виде патча. Также имеется несколько способов временной защиты, не требующих пересборки Apache. Например, можно принудительно очищать заголовок Range при помощи mod_header ("RequestHeader unset Range") или блокировать длинные последовательности Range через mod_rewrite:



# Вариант 1:
RewriteEngine On
RewriteCond %{HTTP:Range} bytes=0-[0-9]+, [NC,OR]
RewriteCond %{HTTP:Range} bytes=([0-9-],){4,} [NC,OR]
RewriteCond %{HTTP:Range} bytes=[0-9,-]+,0-(,|$) [NC]
RewriteRule .? http://%{SERVER_NAME}/ [NS,L,F]

# Вариант 2:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(HEAD|GET) [NC]
RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+
RewriteRule .* - [F]

# Вариант 3:
RewriteEngine On
RewriteCond %{HTTP:Range} bytes=0-.* [NC]
RewriteRule .? http://%{SERVER_NAME}/ [R=302,L]


http://www.opennet.ru/opennews/art.shtml?num=31582

Проверялка
http://seclists.org/fulldisclosure/2011/Aug/att-175/killapache_pl.bin

apache+nginx: убираем порт из адреса при редиректе

Столкнулся на одном проекте с багой: после 301 редиректа адрес становился вида site.ru:8080/newaddr

Оказалось, в данном случае в конфиге был прописан
UseCanonicalName On

Закомментировал - заработало как надо.
Если что - есть вариант прописать в конфиге апача после VirtualHost
Port 80

"Появление порта 8080 в адреса вызвано работой модуля Apache mod_dir. Правильное решение проблемы - добавление Port 80 в конфигурацию Apache.
Установка же header в nginx не всегда решает проблему - некоторые сайты генерируют адрес с использованием директивы Port, которая, если её не выставить, остаётся 8080."
http://forum.nic.ru/archive/index.php/t-197.html

ЗЫ
Не забываем проверить и остальные части конфигов, они такие:
nginx:
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
#proxy_redirect http://${SITENAME}:${PORT}/ http://${SITENAME}/;
...

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

apache - mod_rpaf:
LoadModule rpaf_module libexec/apache22/mod_rpaf.so
RPAFproxy_ips 127.0.0.1 1.2.3.4
RPAFEnable On
RPAFheader X-Forwarded-For
#RPAFsethostname On

Не могу упомянуть занятную статью
http://greenmice.info/ru/node/116

понедельник, 22 августа 2011 г.

Новая редакция закона о ПД: нужно ли нам бояться?

Новая редакция закона о ПД: нужно ли нам бояться?

Срочно переезжаем в «облако»: частые ошибки
Защита в виртуальной среде: чеклист угроз

Запись вебинара «Изменения в законе о защите персональных данных»
http://connect.webinar.ru/join.php?id=9572bb6eac50b088cbb53e77ac5dbb4c&afid=&pw=&r=c4ca4238a0b923820dcc509a6f75849b

Об ублюдочности cisco NAT

Задача: есть мобильные пользователи, которые ходят со своими ноутами и могут работать с сетевыми сервисами как из дома, так и из офиса. Для этого адрес должен быть внешний, вида office.site.ru
Причём вариант service.office.site.ru рассматривается лишь как крайний случай.
Я могу решить эту задачу на freebsd, не так давно было на базе kerio, это легко сделать за 15 минут гугления на iptables...
Но я уже месяц не могу это сделать на циске. Нет, может качество железа у них на уровне, и их гибкостью многие восторгаются... Но эта гибкость появляется несколько в других областях. А по данной проблеме спросил 5 опытных цисководов - все долго гуглили, в итоге разводили руками и советовали делать через service.office.site.ru и локальный днс (серверов много - "по сервису на сервер", а благодаря виртуализации железа при этом много не надо).
В данном случае через днс получается как раз "через жопу": основной домен лежит снаружи и по многим причинам внутри не будет, создать view никто там не даст. Но в инете "спецы" описывают данное решение как единственный "правильный" путь, потому что никак не могут признать отстойность ната в цисках и отсутствия банальных snat и dnat штатно, большая сложность создания нескольких нат-правил...
пример на opennet

Как вариант, заказал второй айпи, прописал его как secondary... Из мира всё работает по обоим айпи, а вот из локалки - нет (через один внешний айпи на другой).

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

Также можно почитать про NAT Order of Operation
http://www.cisco.com/en/US/tech/tk648/tk361/technologies_tech_note09186a0080133ddd.shtml
https://learningnetwork.cisco.com/docs/DOC-8009
https://learningnetwork.cisco.com/thread/30633

воскресенье, 21 августа 2011 г.

Немного про MODX Revolution

Небольшая подборка ссылок

С MODx Evolution уже доводилось общаться - неплохая цмс. Лучше всяких жумл и особенно юми. В чём-то даже удобнее битрикса. Хотя пока не было больших проектов на модх :) На битриксе были, но там свои нюансы...

Быстрый старт в MODX Revolution
http://habrahabr.ru/blogs/modx/116614/
И далее в "похожие посты".

Про "встроенная консоль" - в данном варианте вещь весьма уязвимая (читать комменты). Надо делать через "пишем в файл - запускаем штатными методами", избегая eval()

Ну и основная ветка там - http://habrahabr.ru/blogs/modx/

среда, 17 августа 2011 г.

Подключаем внешнее хранилище к XenServer по iSCSI

Само хранилище будет лежать на хосте с CentOS.

Для начала, надо понять терминологию.
Инициатор (initiator) — iSCSI-клиент.
Таргет — iSCSI-сервер; предоставляет доступ к своим устройствам по iSCSI.
Обнаружение (discovery) — процесс, в ходе которого инициатору становятся известны доступные ему таргеты.
Существующие на сегодняшний день методы обнаружения:
iSNS (Internet Storage Name Service);
SendTargets — таргеты обнаруживаются через специальный адрес обнаружения (discovery-address);
Использование протокола SLP (Service Location Protocol);
Статическое указание.

Именование в iSCSI
IQN (iSCSI qualified name) – имя длиной до 255 символов в следующем формате:
iqn.<year-mo>.<reversed_domain_name>:<unique_name>
Здесь:
<year-mo> это год (year) и месяц (mo), когда был зарегистрирован домен;
<reversed_domain_name> официальное имя домена, записанное в обратном порядке;
<unique_name> это произвольное имя, например, имя сервера.
Пример: iqn.1998-01.com.mycompany:myserver.
EUI (extended unique identifier) – Represents the eui. prefix followed by the
16‐character name. The name includes 24 bits for company name assigned by the IEEE and 40 bits for a unique ID such as a serial number. Например, eui.0123456789ABCDEF.
http://xgu.ru/wiki/iSCSI

Вот так вот хитро и непонятно.

Варианта штатно 2:
netbsd-iscsi.x86_64 : User-space implementation of iSCSI target from NetBSD
scsi-target-utils.x86_64 : The SCSI target daemon and utility programs
Плюс уже стоит
iscsid - Open-iSCSI daemon

netbsd - userspace, то есть медленно и грузит цп.

Есть варианты вроде компиляции самому, например Установка iSCSI-target на CentOS, но тогда уж надо собирать open-scsi c iSER.. В общем, будем разбираться с scsi-target-utils

"Хранилище"
Ставим пакет.
# yum install -y scsi-target-utils.x86_64

Конфиг лежит в (!) /etc/tgt/target.conf
Впрочем, есть вариант "напрямую" через tgtadm. Попробуем.
# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2000-01.ru.spb.webmaster:disk1
# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /mnt/1t/xen/iSCSI/iscsi-target0
Для теста я поставил в заранее созданный файл на 4Gb
# ls -la /mnt/1t/xen/iSCSI/iscsi-target0
-rw-r--r-- 1 root root 4294967808 Sep 29 2010 /mnt/1t/xen/iSCSI/iscsi-target0
# tgtadm --mode target --op show
Target 1: iqn.2000-01.ru.spb.www:disk1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB
Online: Yes
Removable media: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 4295 MB
Online: Yes
Removable media: No
Backing store type: rdwr
Backing store path: /mnt/1t/xen/iSCSI/iscsi-target0
Backing store flags:
Account information:
ACL information:

Теперь пробуем подключить этот лун в хенсервере. Вводим имя хоста, Discover IQNs - находит. Делаем Discover LUNs - получаем "The SR failed to complete the operation".
Дело в том, что у нас просто "нет прав", что можно проверить с другой машины в сети
# iscsiadm -m discovery -t st -p 192.168.2.15
#

Дадим права.
# tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL

Снова с другой машины:
# iscsiadm -m discovery -t st -p 192.168.2.15
192.168.2.15:3260,1 iqn.2000-01.ru.spb.www:disk1

Отлично.
Снова делаем Discover LUNs, ждём секунд 10, радуемся.
Finish, да форматировать
Появился диск, можно на него ставить систему.

Вообще, правильнее давать не файлы, а LV-разделы например. Для этого в -b указывается путь в /dev
-b /dev/mapper/iscsi_vg-iscsi_300Gb

И ещё сюрприз.
Перезапускаем сервис... и все таргеты пропадают. Установка 777 на конфиг файл и рабочую директорию не помогает.

Все операции выше уместились в 3 строки

<target iqn.2000-01.ru.spb.www:disk1>
backing-store /mnt/1t/xen/iSCSI/iscsi-target0
</target>

Некоторые вещи можно делать через
tgt-admin
tgt-setup-lun

например, tgt-admin -s
аналог tgtadm --mode target --op show

Линки
http://xgu.ru/wiki/iSCSI
http://markelov.blogspot.com/2008/11/iscsi-target-initiator-rhelfedora.html
http://daevy.uzps.mh.ru/?p=512
http://redhat-club.org/forum/viewtopic.php?id=8491

пятница, 12 августа 2011 г.

LSi 2008 и 2108

1) 2108 - чип для "полноценных" RAID-контроллеров с 512MB кэшом и RAID 0, 1, 5, 6, 10, 50, 60. У LSI появилась еще более производительная версия - 2208, но используется пока только в собственных контроллерах - 9265/9285.
2) 2008 - используется, в основном в HBA, т.к. не имеет аппаратного XOR-процессора. RAID-контроллеры на базе него имеют серьезные ограничения по числу массивов, дисков в массиве и т.д.
Контроллеры на базе 2008 могут работать с одним из трех стеков, в зависимости от прошивки:
iMR (integrated MegaRAID) - стек с поддержкой RAID-5, настраивается через LSI WebBIOS (Ctrl+M) или MSM.
iR (intergrated RAID) - RAID 0, 1, 1E, 10, настраивается через mptbios (Ctrl+C)
IT (Initiator-taregt) - режим обычного HBA.
Прошить firmware IT или iR можно на любой контроллер Supermicro на базе LSI 2008, а вот iMR - только на USAS2-L8iR или набортный с ключом SAS2-RAID5-KEY).
Все контроллеры на базе 2108 не могут работать как HBA.

http://true-system.blogspot.com/2011/04/oem-sas-supermicro.html

Быстрая настройка vsftpd в CentOS

В целом, vsftpd безопаснее чем proftpd, поэтому будем ставить его.

yum -y install vsftpd

chkconfig vsftpd on
service vsftpd start

Со штатными настройками будет пускать пользователей, имеющих аккаунты в системе, с их паролями.
! по умолчанию разрешены анонимные логины!

Возможно изменить штатное поведение и авторизовывать не только системных пользователей, но и по спец списку. Формально они тогда будут работать от заданного пользователя типа ftpuser.
Не забываем, что это настраивается через pam, в /etc/pam.d/vsftpd
Штатный файл:

#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include system-auth
account include system-auth
session include system-auth
session required pam_loginuid.so

BDB
Для авторизации через db - лучше создать отдельный файл и его задать в конфиге
/etc/pam.d/vsftpd-db
Выбор pam-конфига через pam_service_name=vsftpd-db

session optional pam_keyinit.so force revoke
auth required /lib64/security/pam_userdb.so debug db=/etc/vsftpd/login
account required /lib64/security/pam_userdb.so debug db=/etc/vsftpd/login

При этом файл с паролями будет в /etc/vsftpd/login.db
Формат файла-оригинала (login.txt):
юзер1
пароль1
юзер2
пароль2
(перевод строки в конце. Без него может не работать!)

Генерация файла паролей:
db_load -T -t hash -f login.txt /etc/vsftpd/login.db

подробнее

Через MySQL
ставим pam_mysql

/etc/pam.d/vsftpd-mysql
auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2

Проверить работу mysql, добавить базу и пользователя
CREATE DATABASE vsftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;

Создаем таблицу:
CREATE TABLE 'accounts' ( 'id' INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 'username' VARCHAR(30) NOT NULL , 'pass' VARCHAR( 50 ) NOT NULL , UNIQUE ( 'username' ) ) ENGINE = MYISAM ;
quit;

Добавить системного пользователя
vsftpd:*:1003:1003:User &:/home/vsftpd:/sbin/nologin

Добавление пользователя
#mysql -u root
USE vsftpd;
INSERT INTO accounts (username, pass) VALUES(’testuser’, PASSWORD(’secret’));
quit;

Подробнее

Опций там довольно много и доточка "под себя" может спокойно занять и неделю и больше.

четверг, 11 августа 2011 г.

Google mail for domains: теперь только 10 ящиков

Имеется в виду бесплатных. Но для нас google apps невыгоден - $50 в год за ящик.

Starting on May 10, new organizations (excluding schools and non-profits) with more than 10 users will need to sign up for our paid service, Google Apps for Business
http://googleenterprise.blogspot.com/2011/04/helping-small-businesses-start-and.html
Увы.

https://www.google.com/a/cpanel/standard/new3?hl=ru&source=gafb-pricing-tabletop-ru

NetApp WAFL

"NetApp WAFL (Write Anywhere File Layout) – это структура размещения произвольно расположенных данных на диске, оптимизированная на производительность доступа к ним."
http://blog.aboutnetapp.ru/archives/863

Утверждение HP:
“Первичные данные (здесь и далее я буду переводить слово primary как “первичные”, этим словом принято называть основные, активные, “боевые” данные приложений, в противоположность данным резервных копий и архивов, например. Прим. romx) имеют случайный характер доступа по своей природе. Дедупликация приводит к тому, что различные блоки данных записываются в различные места диска. NetApp WAFL усугубляет проблему, записывая данные в свободные места, ближайшие к головке записи дисков. Чтение данных вызывает пересборку этих блоков, в формат пригодный для чтения приложением. Оверхед, вызываемый этой пересборкой данных, оказывает влияние на производительность, обычно на 20-50%”
Ответ Dr.Dedupe:

NetApp WAFL (Write Anywhere File Layout) – это структура размещения произвольно расположенных данных на диске, оптимизированная на производительность доступа к ним. Дедупликация еще более “рандомизирует” эту структуру, переназначая указатели на блоки данных и удаляя дубликаты. После дедупликации производительность на чтении иногда слегка возрастает, иногда слегка падает, однако подавляющее большинство пользователей говорят, что не заметили никакой разницы вообще. Важным моментом является то, что мы не перемещаем данные как таковые, просто переставляем на их блоки указатели. Если вы хотите получше разобраться в том, как работает наша технология, то я рекомендую посмотреть пример работы дедупликации.
http://blogs.netapp.com/drdedupe/2010/04/how-netapp-deduplication-works.html#tp

Откуда вообще берется фрагментация?
http://blog.aboutnetapp.ru/archives/881

О “дефрагментации”
http://blog.aboutnetapp.ru/archives/874


Ради создания хотя бы иллюзии одновременности и организуется кэш на запись. Приложения записывают свои данные в кэш записи, получают сразу же ответ "готово" и идут сочинять новые блоки на запись, не дожидаясь того, что данные физически поместятся на диск.

Кэш же внутри себя удерживает блок, ожидая подходящего момента на запись, а также оптимизирует записи, с тем, чтобы уменьшить "пробег" магнитных головок по диску, и возможно оптимальным образом перекомпонует записи так, чтобы уложить их максимально эффективным, с точки зрения head seek-а, способом.

Принципиальное отличие WAFL тут состоит в том, что WAFL не перезаписывает блоки уже записанные на диске, и значит при записи клиенты гораздо меньше ожидают seek-а. Вы помните, что в WAFL записи можно провести "чохом", в выделенный сегмент, а не переписывать по одному блоку, мечась по всему диску, здесь и там, ожидая, когда подъедет под головку тот или иной блок. Поэтому даже без традиционного кэширования записи на WAFL клиентские записи быстро оказываются на дисках.

Строго говоря, большой кэш означает, что, используя транспортную аналогию, записи быстро встают в очередь на посадку, но совсем не значит, что при этом они быстро сядут и поедут.

WAFL оптимизирован именно на минимальное время от момента прихода данных "на остановку" и до входа их "в автобус" жесткого диска, превращая записи в записи последовательного порядка (sequental) из поступающих записей в произвольном порядке (random).
...
Вот почему NetApp Flash Cache не используется на запись данных, работая всем своим объемом только на чтение. Вот почему необходимость кэширования записи для WAFL не столь безоговорочна, как для "классических" дисковых структур.
http://blog.aboutnetapp.ru/archives/936


Таким образом, WAFL сделана "для реального применения" в сферах, где много случайной записи. Но при таком подходе один из самых "неудачных" тестов будет... линейное чтение! Потому что системе придётся много бегать головами для сборки "кусочков". В такой системе обязан быть дефрагментатор, явный или коссвенный, в виде кэша SSD, который сбросит весь файл в новое место большим куском. (разумеется, это будет не дефрагментатор системы, который ничего не знает про реальное расположение данных)
И требуется большая глубина кэша чтения, чтобы максимально эффективно собирать данные по всем дискам.
В целом, для типового применения, а также БД - система хорошая. Но не систем видеомонтажа с линейной записью и чтением и подобными.
Как таковой кэш записи всё-равно может ускорить работу, хоть и многократно эффективнее на классических системах, тут позволит не просто "записали куда получилось", а выбрать оптимальные участки и дождаться, когда будем рядом. К тому же, "прямо под головкой" могут уже быть данные. Писать в "окна" между данными? Вообще каша получится. Ждать достаточно большого окна? Терять преимущество перед другими системами.

Дополнение
Из моей старой заметки, Почему я считаю, что WAFL это не файловая система?

вторник, 9 августа 2011 г.

XenServer на малом количестве памяти

Собрал тестлабу на бытовом компе, поставил диск с системой - самопроизвольно ребутился. Вставил новый диск, запустил инсталлер и получил
Panic on CPU0:
Not enougth RAM for DOM0 reservation.
Дело в том, что там стояло 512мб озу (да, мало, но по идее достаточно, чтобы просто поставить систему).
На 2 гб - нормально.

NetApp E-series, краткий FAQ

Прошло 3 месяца <заметка 27 июня 2011> с момента объявления о покупке NetApp-ом у LSI его подразделения про разработке и продаже внешних дисковых систем, которое было известно под именем Engenio (ESG).

Я не собирался к этой теме возвращаться (по крайней мере часто), как и вообще к теме FC-систем "традиционной архитектуры", которые приобрела, вместе с Engenio, NetApp, так как, в целом, лично мне, они не очень интересны.

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

http://blog.aboutnetapp.ru/archives/945

True System: IPMI, KVM-over-LAN, virtual media в серверах Supermicro - удаленное управление и мониторинг

True System: IPMI, KVM-over-LAN, virtual media в серверах Supermicro - удаленное управление и мониторинг

Интерфейс SAS-2 и контроллер LSI SAS 9211-8i

Знакомство с интерфейсом Serial Attached SCSI на 6 Гбит/с

http://www.ixbt.com/storage/lsi-sas9211-8i.shtml

Подключение существующего ssl сертификата в ISPManager

Чтобы подключить сертификат (неважно, через панель или руками в конфиге Apache) необходимо иметь сам сертификат и ключ.
Их следует указывать в ISPmanager в меню SSL сертификаты на уровне пользователя как "существующий" сертификат и затем там же активировать.

http://forum.ispsystem.com/ru/showthread.php?t=16016

Похоже, тут ключевой момент "на уровне пользователя".

Ошибочная инструкция по SSL-сертификатам
От рута даже не пытайтесь, при попытке включения будет ошибка "Пользователь не существует".

воскресенье, 7 августа 2011 г.

наборы от Gumstix

"Пока все только говорят о использовании ARM на серверах, Gumstix сделал платформу для ARM серверов."
http://habrahabr.ru/blogs/server_side_optimization/103430/

Плата позволяет установить 7 модулей Overo с процессором TI OMAP 3503 (ARM Cortex-A8) 600Mhz-720Mhz, памятью 256MB и 256MB NAND флеша. Объединяются модули при помощи встроенного свитча на 9 портов 10/100Mbit, USB-serial для подключения к консолям модулей, 7 USB портов которые могут работать как в OTG режиме так и в host и ethernet порта 10/100Mbit для связи с внешним миром. При этом размер платы составляет 70мм на 293мм, в качестве источника питания выступает блок на 5 вольт и мощностью в 20 ватт.

Стоимость модуля Overo Earth — 149 долларов.
Стоимость платы Stagecoach — 229 долларов.
Суммарная стоимость полного комплекта — 1272 доллара

Оптимально для ДЦ как "честные" выделенные сервера. Что-то вроде VPS, но не V.
Размеры 7х30см, высота 15мм.
"Блок питания прилагается на 20Ватт. Согласно этой бумажке процессор потребляет 1.5Ватта при полной нагрузке при наличии DSP и GPU. Откидываем DSP+GPU (в OveroEarch их нет), думаю в пике будет 800мВт-1Вт. В 1U ядер входит 128 штук :)"
Из комментов. там ещё много подробностей.

Есть и отдельные модули расширения
Tobi
An expansion board to provide DVI display, 10/100baseT Ethernet, USB Host, USB OTG, USB console and Stereo Audio to any Overo® COM
$69

Tobi-Duo
An expansion board to embed inside a security or firewall appliance
$79

О продуктах

суббота, 6 августа 2011 г.

Каковы проблемы FreeBSD и пути их решения? [LJ]

Для начала, линки на оригинал.

Часть 1
Часть 2

А теперь сам текст, мало ли что снова с ЖЖ будет...

ЗЫ Комменты там тоже имеет смысл читать, но сюда их копипастить не буду.

Плюс на хабре тема, выделено сравнение с gentoo

ЗЫЫ ветка шетухина

Тест Silicon Power V20 и некоторые особенности SSD на базе SandForce SF-1200

http://www.3dnews.ru/storage/614576/print

В общем, середнячок. Не самый быстрый, не самый дорогой..

Почему стандартному vSwitch-у не нужен Spanning Tree протокол

http://habrahabr.ru/blogs/virtualization/124317/

вторник, 2 августа 2011 г.

puppet и аналоги

Server Configuration with Puppet

http://www.youtube.com/watch?v=US8ZpjgEhUg

Puppet, система управления конфигурациями
Часть I
Часть II

Также есть chef

"Изначально я сравнивал cfengine и bcfg2, и после поверхностного ознакомления основное отличие, которое я отметил, было в том, что у cfengine описание императивное, а у bcfg2 - декларативное. В том смысле, что у cfengine в конфигах написано, что нужно сделать, _как_ получить какое-то состояние, а у bcfg2 описывается именно конечное состояние, _что_ нужно получить. Насколько я знаю, puppet - это переработанный cfengine, написанный на руби..."
http://www.linux.org.ru/news/doc/4953619

"Для любителей Python связка Puppet и Capistrano заменяется на Bcfg2 и Fabric.

Puppet/Bcfg2 - для системных вещей, Capistrano/Fabric для императивного выкатывания аппликух."
Там же.

"От Chef отказался по причине ужасной документации, автор через два предложения срывается на какую-то другую тему и забывает о чем только что говорил, в итоге плукая по ссылкам я дошел до рекурсии. У меня два дня заняли попытки поставить его из репозитория Debian и я его не поставил. Поверьте мне, я старался :)"

Почему не ruby:
"Python и Perl стоит везде, а Ruby еще нужно ставить. Ну и мне по личным соображениям куда лучше хачить код на Python/Perl/C, чем Ruby. Я сам пользую Puppet и пишу под него модули, дружу его с LDAP, но реально удивлен почему никто не сделает правильный cfengine на Python (хотя есть func, но это немного не то).
Ну вообще там где приходится ставить Ruby под что-то серьезное, то это всегда проблема, потому что всем рибороидам нужен как минимум Ruby Enterprise, а с ним не все так просто как с apt-get update && apt-get upgrade. Основная проблема, что конретно мне и тем кто со мной работает не удобно хачить модули на Ruby (там где этого простого декларативного язычка не хватает), ибо Ruby никогда не был и не будет инструментом системного администратора. Там где не хватает bash есть perl, там где perl не удобен есть python, прокачивать руби не собираюсь, потому что язычок в лучшем случае годится для веб-разработки и так по мелочи, опять же рельсы - всё, другим он нах не уперся."