Linux
Netgear Stora MS-2000
Стал обладателем данного NAS. Привлекла низкая цена и полноценный Linux.
Все недостатки перекрывает бесшумность работы! Сначала хотел собрать mini-ITX компьютер на Atom’е с пассивным охлаждением, однако не нашел готовых корпусов с внешним блоком питания — вентиляторы внутренних корпусов всего 4см, многооборотистые и из-за этого сильно шумные. Также минусом было отсутствие нестандартно малых корпусов miniITX. Все-таки ~30см — уже много для mini-NAS.
После покупки обнаружились интересные фичи Netgear Stora MS-2000. К примеру, у произвидителя есть премиум-аккуаунт,
подразумевающий неограниченное число пользователей, Secure FTP, torrent. Стоит он всего 20 долларов в год.
Здесь не будут описаны способы «взлома».
Все действия производятся от имени root
Предполагается, что в /etc/environment указаны пути PATH
bash-3.2# cat /etc/environment
PATH=/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/sbin:/opt/sbin:/usr/sbin:/sbin
LANG=en_US.utf8
Параметр LANG не обязателен.
1. Перед заливкой файлов и твиками обновитесь на последнюю прошивку.
Если не получается обновится и появляется сообщение «Software update failed» на новом устройстве «из коробки», откройте в браузере ссылку http://support.netgear.hipserv.com/updates/selfcheck/ — это автоматическое тестирование через интернет. Введите Product Key и нажмите Submit. Через несколько секунд Stora должна начать мигать синей ламплчкой. Возможны перезагрузки и даже перепрошивка. Важно в это время обеспечить ей доступ в Интернет и электропитание. Жесткий диск должен быть всавлен и отформатирован в файловую систему XFS. После этого обычно можно обновлять прошивку. Сделать это надо будет несколько — более поздние прошивки не могут быть применены к более ранним. Обычно 3-4 раза после запроса обновлений Stora будет предлагать сохранить, а потом установить новую прошивку. Сейчас последняя прошивка — 5033 (v2.5.1). «Из коробки» обычно идет v2.3. По ощущениям прошиваться стоит — стало намного красивее, убрано много багов. Все описанные здесь твики справедливы для прошивки 5033 (v2.5.1).
2. Логирование vsFTPd
Баг с настройками. По умолчанию логи пишутся в /var/log, который смонтирован в tmpfs (оперативную память). Если будут много качать через ФТП, на виртуальном диске может кончиться свободное место. Также хочется, чтобы логи сохранялись после перезагрузки. Решение: перенести лог файл в /home
mkdir /home/common_log
chmod 777 /home/common_log
Измените в файле /etc/vsftpd/vsftpd.conf
xferlog_file=/home/common_log/vsftpd.log
Измените в файле /etc/logrotate.d/syslog /var/log на /home/common_log:
/home/common_log {
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
Выполните
/etc/init.d/vsftpd restart
3. Логирование отправки почты, попыток аутентификации и сообщений ядра.
В конце файла /etc/syslog.conf напишите:
authpriv.info;auth.*;local0.*;kern.*;mail.* /home/common_log/syslog.log
Поскольку данный файл располагается на жестком диске, а Stora управляет отключением дисков через файл /etc/pwrmgr.conf (параметр idletime в минутах), события выбраны из числа тех, которые либо очень важны либо влекут за собой дисковую активность. Подумайте, прежде чем добавлять вывод новых событий!
Выполните
/etc/init.d/syslog restart
После создания файла логов можете задать ему права. Например:
chmod 644 /home/common_log/syslog.log
То есть можно всем читать, писать — только root.
chmod 600 /home/common_log/syslog.log
То есть можно читать и писать только root
4. Ошибка конфигурирования PAM для vsFTPd.
Ошибка не критичная, но засоряет лог-файл.
axentraserver vsftpd: Deprecated pam_stack module called from service «vsftpd»
PAM библиотеки новые, а конфиг /etc/pam.d/vsftpd старого образца
#%PAM-1.0
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
session required pam_loginuid.so
Содержимое файла нужно заменить на
#%PAM-1.0
auth required pam_nologin.so
auth include system-auth
account include system-auth
password include system-auth
session required pam_loginuid.so
session include system-auth
Объяснение: http://www.gentoo.org/proj/en/base/pam/upgrade-0.99.xml
5. Лишний файл на диске Stora
Выполните
rm /usr/share/phlickr/Phlickr/Tests/Offline/Import/sample_gallery_for_tests.zip
Так мы освободим 5МБ места
Посмотреть совбодное место можно командой
df -h
если вывод не умещается на экран, то:
df -h | less
Вообще свободное место на NAND диске Stora можно узнать командой
df -t rootfs -h
6. Парковка головок на жестких дисках
Подробнее: &http_path.value;articles/progs/load_cycle_count/
7. Перенос сессий PHP на жесткий диск
Аналогично п. 2. В /etc/php.ini исправить
error_log = /home/httpd_error_log
sesion.save_path = /home/0phpsessions
Далее создать каталог и установить права
mkdir /home/0phpsessions (от рута)
chmod 777 /home/0phpsessions
И напоследок обязательно в файле /etc/cron.d/php
изменить путь /var/lib/php/session на /home/0phpsession и время запуска с */10 * * * * на 59 * * * *
Внимание! Без жесткого диска в веб интерфейс будет невозможно зайти!!!
8. Узнать скорость работы жесткого диска
hdparm -t /dev/sd[a-b]
/dev/sda:
Timing buffered disk reads: 138 MB in 3.04 seconds = 45.40 MB/sec
9. SMART диска
smartctl -a -d marvell /dev/sd[a-b]
или
for d in /dev/sd?; do smartctl -A -d marvell $d | grep Load_Cycle_Count; done
Также можно запустить демон /etc/init.d/smartd start
А в конфигурационном файле /etc/smartd.conf написать
/dev/sda -d marvell -a -o on -S on -s (S/../.././02|L/../../6/03) -m <user>@<yourdomain>
То есть запускать короткий автотест ежедневно между 2-3 часами ночи, а полный (Long не что иное как Extended) — по субботам между 3-4 часами утра и результат отправить на Email.
Синтаксис файла: http://smartmontools.sourceforge.net/man/smartctl.8.html
10. Управление отключением жесткого диска
В файле /etc/pwrmgr.conf измените значение параметра idletime=10 (кол-во минут неактивности, после которого будет отключен жесткий диск).
Данный параметр нужно изменить под свои цели использования. К примеру, если на Stora будет много мелких файлов, к которым идет обращение в течение дня, то следует выставить значение таким образом, чтобы диск по возможности включался как можно меньшее кол-во раз.
Для запрета отключения жесткого диска установите данный параметр в 0.
Можно вручную отключить (отправить в сон) жесткий диск посредством отправки команды
hdparm -Y /dev/sd[a-b]
За выключение по расписанию отвечает запускаемый ежеминутно скрипт /usr/lib/spd/scripts/pwrmgr/timedShutdown.php
11. Дефрагментация жестких дисков
По каким-то причинам нет файла, производящего дефрагментацию. Это решаемо. Надо скопировать файл в /usr/sbin/
и выставить ему право на исполнение:
chmod +x /usr/sbin/xfs_fsr
Оценить фрагментацию (предполагается, что есть 2-й диск, подключенный «вручную» — не в RAID1 и не JBOD):
xfs_db -r -c frag /dev/md0
xfs_db -r -c frag /dev/sdb1
Запустить дефрагментацию в фоновом режиме:
nohup xfs_fsr /dev/md0 &
nohup xfs_fsr /dev/sdb1 &
Примерный скрипт для дефрагментации:
#!/bin/bash
date +%F’ ‘%T’ —— Prew. fragmentation:’ >> /home/common_log/xfs_fsr.log
/usr/sbin/xfs_db -r -c frag /dev/md0 >> /home/common_log/xfs_fsr.log
/usr/bin/xfs_fsr -t 10800 /dev/md0 >> /home/common_log/xfs_fsr.log
echo ————————- Curr. fragmentation after: >> /home/common_log/xfs_fsr.log
/usr/sbin/xfs_db -r -c frag /dev/md0 >> /home/common_log/xfs_fsr.log
date +%F’ ‘%T’ ——————————- XFS_fsr Exit.’ >> /home/common_log/xfs_fsr.log
Проверка на Bad-blocks
badblocks -v /dev/md0
badblocks -v /dev/sdb1
12. Правка менеджера торрентов Transmission
Опять-таки по каким-то причинам конфигурационный файл записан в область NAND памяти. Скорее всего, это произыедено из-за совместимости и удобста пользователей — таким образов настройки не сбиваются при смене жесткого диска. Мы же охраняем каждый байт памяти. Итак.
Оставновить демон
/etc/init.d/transmission.init stop
Скопировать
cp -rp /etc/transmission /home
Заменить в файле /etc/init.d/transmission.init в параметре директории настроек с /etc/transmission на /home/transmission.
Поправить в файле /home/transmission/settings.json каталог загрузки на нормальный (в исходном варианте символическая ссылка):
«download-dir»: «/home/0common/Torrent Downloads»,
Порт RPP-сервиса (по умолчанию 9091):
«rpc-port»: 23322
Также в параметр rpc-whitelist можно через пробел вписать маски разрешенных IP адресов для управления закачками. Тогда надо установить параметр rpc-whitelist-enabled в true.
После всех манипуляций перезапустить демон
/etc/init.d/transmission.init restart
Если все запустилось, удаляем старый каталог
rm -rf /etc/transmission
Если не нравится структура файлов в каталоге загрузки, останавливаем демон, рассортировываем файлы по папкам и делаем жесткие ссылки в каталог загрузки /home/0common/Torrent Downloads
ln /path/to_moved_file /path_to_hard_link
Запускаем демон. Возможно, начнется перехеширование торрентов.
13. Бекап системных файлов:
Выполните
tar -cvpf /home/archive_stora.tar / —directory / —exclude=proc —exclude=dev —exclude=sys —exclude=links —exclude=home
и сразу же добавим (если есть) зависимые каталоги из /home
tar -uf /home/archive_stora.tar /home/transmission /home/common_log
Разворачивать архив нужно на той же Stora, предварительно поместив его в корень системы:
tar -xvpf /archive_stora.tar
Лучше пользоваться Hardware Reset, а все изменения в Stora протоколировать.
14. Hard Reset Stora MS2000
Выполните следующие действия:
— Чтобы перевести устройство в режим восстановления, предварительно извлеките жесткие диски, включите устройство (при включенном Интеренте и работающем DHCP сервере), подождите 15 секунд, затем зажмите кнопку сброса (Reset). Синий индикатор Power будет продолжать моргать.
— Процесс займет около 30 секунд, синий индиеатор будет мигать в течение этого периода.
— Как только механизм восстановления запустится, синий индикатор выключится, и HDDLED1 станет оранжевым. Кнопку сброса отпустить (есть мнение, что кнопку сброса надо дежать нажатой пока индикаторы HDDLED не мигнут 6 раз).
— Устройство будет попытаться получить IP адрес
— Если получит IP, HDDLED2 загорится оранжевым на 1 секунду.
— Если не получит IP, процесс восстановления остановится. Индикатор питания выключится, а HDDLED1 и HDDLED2 мигнут 3 раза синфазно.
(Проверьте сетевой кабель и раьоту DHCP сервера)
— Если все нормально — индикатор питания выключится, а HDDLED1 и HDDLED2 будут мигать противофазно.
— Прошивка может закачиваться 10-30 мин, даже если соединение интернет высокоскоростное. Не выключайте устройство!
— После того как прошивка будет скачена без ошибок, все индикаторы включатся на 5 сек и устройство перезагрузится.
— Если прошивку записать не удается, HDDLED1 и HDDLED2 будут мигать синфазно. Повторите для верности процедуру сначала. Если результат не изменится, скорее всего вам дорога в сервис-центр.
Если получилось сделать Hard Reset, при регистрации на сайте указывайте тот же ключ продукта, имя устройства, логин и пароль, что и при первой регистрации!После этого выключите устройство и вставьте HDD.
15. Файлы, созданные через FTP, не удаляются из веб-приложения
Все дело в том, что сервер FTP задает доступ к файлам имени и группы пользователя (того, через которого был произведен логин в FTP). А менеджер запущен от группы www.
Решение:
chown -R :www $HOME/path_to_file
команда рекурсивно меняет владельца файлов, начиная с каталога path_to_file
16. Как заменить жесткий диск в Stora на другой
Самое общее решение данного вопроса можно прочитать в статье о подготовке дисков с размером сектора 4кБ (Advanced Format) — там рассказывается, как отформатировать диск в любую файловую систему. Тогда он может использоваться в качестве второго диска не в RAID1/JBOD. Многие люди спрашивают, как отформатировать диск, скажем в EXT3.
А если надо отформатировать системный диск или файловая система XFS в принципе подходит, то лучше поправить скрипты Stora, чтобы она сама правильно разбивала Advanced Format диски. Это просто.
Открываем файл /usr/lib/spd/scripts/raid/DiskClass.php и меняем в строке №273:
$cmd = «/sbin/parted /dev/».$this->getDeviceName().» mkpart primary xfs 0 …
на
$cmd = «/sbin/parted /dev/».$this->getDeviceName().» mkpart primary xfs 8s …
Далее желательно явно задать размер кластера файловой системы, кратный и не меньший размеру сектора. Для этого в строке №385 меняем:
$cmd = «/sbin/mkfs.xfs -f -b size=4096 «. $this->diskname .»1 «;
на
$cmd = «/sbin/mkfs.xfs -f -b size=4096 «. $this->diskname .»1 «;
17. Форвардинг портов (uPNP).
Если требуется добавить или удалить пробрасываемые роутером порты, в файле /usr/sbin/check_igd.pl
изменяем номера портов в строке
my @forwardedPorts = ( 22, 80, 443, 21, 20, 50000, 50001 );
где
20,21 — ftp
22 — ssh
80 — web
443 — ssl web
50000 и 50001 — порты для установления пассивного соединения vsftp.
18. Команды top, ps -aux, umtime выводят сообщение вида Unknown HZ value! (90) Assume 100.
Это для Stora нормально — данное сообщение есть даже после хард-ресета. Я много переделывал в ней и у меня это сообщение исчезло. К сожалению, не знаю на котором этапе.
19. Управление световыми индикаторами.
Надо запустить скрипт /usr/bin/oe-visual-indicator или /usr/bin/set-led-status и передать ему два параметра следующего вида:
где
power — управление индикатором работы
hdd0 — управление первым (левым) HDD
hdd1 — управление вторым (правым) HDD
где mode принимает следующие значения:
для power — [on|off|blink]
для hdd0 и hdd1 — [on|error]
20. После установки статического IP адреса не скачиваются торренты и файлы.
Когда устройство получает данные по DHCP, в файл /etc/resolv.conf записывается адрес DNS-сервера. При установке статического IP адреса и перезагрузке устройства данный файл обнуляется, так как смонтирован в оперативную память устройства.
Данные для сети на основе статического IP адреса записываются в файл /etc/sysconfig/network-scripts/ifcfg-eth0
К примеру:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
BROADCAST=192.168.0.255
NETWORK=192.168.0.0
NETMASK=255.255.255.0
IPADDR=192.168.0.1
USERCTL=no
GATEWAY=192.168.0.1
DNS1=192.168.0.1
По какой-то причине сервер имен DNS1 не был записан в файл, хотя веб-интерфейс Stora показывал, что DNS1 есть.
Если у вас есть второй сервер имен, можно добавить его, назвав DNS2, по аналогии с DNS1.
После этого необходимо перезапустить вашу программу, нуждающуюся в доступе в сеть по имени хоста.
Например, для Transmission:
/etc/init.d/transmission.init restart
21. Средсва для дефрагментации файловой системы XFS
По умолчанию используется файловая система XFS. Для второго диска, если его подключать и монтировать вручную, можно использовать любую поддерживаемую ядром файловую систему. Даже NTFS (не рекомендуется при большой нагрузке на диск). Большой плюс XFS — очень быстрая работа с большими файлами и малый процент фрагментации. Большой минус — очень мало программ, способных восстанавливать данные, обусловленный сложностью XFS (исходный код заниамет более 100 тысяч строк кода).
Итак, смотрим процент фрагментации системы:
# xfs_db -r /dev/md0
xfs_db> frag
actual 103212, ideal 96001, fragmentation factor 6.02%
xfs_db> quit
Вполне может жить при 6% фрагментации.
Если все-таки подозреваете, что виной этому последний скаченный файл, можно проверить:
# xfs_bmap -v /home/0Common/some_path/Debian-LiveCD.iso
/home/0Common/some_path/Debian-LiveCD.iso:
EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET TOTAL
0: [0..856476]: 456738465..467365846 10 (34568384..34874653) 709475
Первая цифра — индекс экстента. В данный момент он всего один, следовательно, файл не фрагментирован.
Если таких экстентов очень много, можно дефрагментироваться данный файл:
# xfs_fsr /home/0Common/some_path/Debian-LiveCD.iso
В качестве параметра может быть передано название устройства, например, /dev/md0 — тогда будет дефрегментирован целый раздел. Также можно добавить параметр -t и указать предельное время дефрагментации в секундах.
Продолжение следует…