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|hdd1] [mode]

где
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 и указать предельное время дефрагментации в секундах.

Продолжение следует…

Показать больше

Статьи на близкие темы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Закрыть