Показаны сообщения с ярлыком nfs. Показать все сообщения
Показаны сообщения с ярлыком nfs. Показать все сообщения

понедельник, 6 июля 2009 г.

Cервер приложений. Настройка NFS

Для автоматического подключения по nfs при старте сервера я модифицировал файл /etc/fstab:
# /etc/fstab: static file system information.
#
# proc /proc proc defaults            0    0
/dev/hda1 / ext3 errors=remount-ro    0    1
/dev/hda5 none swap sw                0    0
#/dev/hdb /media/cdrom0 udf,iso9660 user,noauto        0    0
#/dev/fd0 /media/floppy0 auto rw,user,noauto           0    0
192.168.1.62:/mnt/HD_a2 /mnt/nas2d0 nfs rw,hard,intr   0    0
192.168.1.65:/c/media /mnt/nas3d0 nfs rw,hard,intr     0    0
192.168.1.60:/opt/sybhttpd/localhost.drives/HARD_DISK /mnt/nmt1d0 nfs rw,hard,intr      0  0
192.168.1.60:/opt/sybhttpd/localhost.drives/USB_DRIVE_A-1 /mnt/nmt1d1 nfs rw,hard,intr  0  0
192.168.1.1:/tmp/mnt/disc0_1 /mnt/nwl1d0 nfs rw,hard,intr                               0  0
Иногда при перезагрузке других устройств в сети на сервере остается неверный дескриптор рестартовавшего устройства. Для переподключения я использую написанный мной скрипт mnt_nfs.sh. Скрипт проверяет доступость файла-флага, размещенного на каждом устройстве в корне экспортируемой директории. Имя файла повторяет имя устройства. Если флаг-файл доступен - ничего не делается Если - нет, то устройство сначала размонтируется, а затем снова монтируется.
#!/bin/bash

# /usr/bin/mnt_nfs.sh
# script for reconnecting nfs resource if lose
#

# flag for testing
file_nas1d0="/mnt/nas1d0/nas1d0"
file_nas2d0="/mnt/nas2d0/nas2d0"
file_nas3d0="/mnt/nas3d0/nas3d0"
file_nnm1d0="/mnt/nmt1d0/nnm1d0"
file_nmt1d1="/mnt/nmt1d1/nmt1d1"
file_nwl1d0="/mnt/nwl1d0/nwl1d0"
file_srv1d0="/mnt/srv1d0/srv1d0"

if [ -e $file_nas1d0 ]; then
echo "Not present yet"
else
echo "Not present yet"
fi

if [ -e $file_nas2d0 ]; then          # если флаг доступен
echo "NAS2 already connected" # значит устройство уже подключено
else
sudo umount /mnt/nas2d0       # иначе, размонтируем и снова смонтируем
sudo mount -t nfs 192.168.1.62:/mnt/HD_a2 /mnt/nas2d0
fi

if [ -e $file_nas3d0 ]; then
echo "NAS3 already connected"
else
sudo umount /mnt/nas3d0
sudo mount -t nfs 192.168.1.65:/c/media /mnt/nas3d0
fi

if [ -e $file_nnm1d0 ]; then
echo "HDX 1000 already connected"
else
sudo umount /mnt/nmt1d0
sudo mount -t nfs 192.168.1.60:/opt/sybhttpd/localhost.drives/HARD_DISK /mnt/nmt1d0
fi

if [ -e $file_nmt1d1 ]; then
echo "RSH 100 already connected"
else
sudo umount /mnt/nmt1d1
sudo mount -t nfs 192.168.1.60:/opt/sybhttpd/localhost.drives/USB_DRIVE_A-1 /mnt/nmt1d1
fi

if [ -e $file_srv1d0 ]; then
echo "Not present yet"
else
echo "Not present yet"
fi

if [ -e $file_nwl1d0 ]; then
echo "Asus WL500gP already connected"
else
sudo umount /mnt/nwl1d0
sudo mount -t nfs 192.168.1.1:/tmp/mnt/disc0_1 /mnt/nwl1d0
fi
После проверки работы скрипта, я включил его в /etc/crontab для запуска в каждую 01, 11, 21, 31, 41, 51 минуты каждого часа, каждый день каждого месяца:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root    cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
1,11,21,31,41,51 * * * * root mnt_nfs.sh
#
Все то же самое я проделал на ноутбуке, с которого пишу.

вторник, 23 июня 2009 г.

Autoremount nfs

Описание проблемы. При перезагрузке отдельных устройств в моей сети теряется монтирование ресурсов по nfs. По этой причине некоторые программы (clamav, backup), запущенные на других устройствах (сервере приложений, ReadyNas) не находят сетевые ресурсы. Решать эту проблему буду так: В корне диска каждого устройства размещу его метку в соответсвии с принятыми мной стандартами. В хроне буду каждый час проверять - доступна ли метка. Если нет - выполнять перемонтирование ресурса. Позже модифицирую скрипты и размещу их здесь.

вторник, 14 апреля 2009 г.

Настройка NFS на HDX 1000

Nfs сервер уже установлен на HDX 1000 и, для обращения к нему, в окне установки network share через меню необходимо прописать ресурсы . Я хочу примонтировать так же все сетевые накопители в каталог /mnt. Создадим три каталога /mnt/nwl1d0, /mnt/nas1do и /mnt/nas2d0. В каталоге /share/.usr/bin разместим скрипт nfsmnt.sh следующего содержания:
#!/bin/sh

# =================   schema resources map
#   HDX 1000 (192.168.1.60)
#/mnt
#-------------------+
#                   |
#    /nwl1d0        +-- Asus Wl500gp  -----> (192.168.1.1)
#    /nas1d0        +-- DSM-G600      -----> (192.168.1.61)
#    /nas2d0        +-- DSM-G600      -----> (192.168.1.62)


##################### check nfs ###########################
#showmount -e 192.168.1.1
#showmount -e 192.168.1.60
#showmount -e 192.168.1.61
#showmount -e 192.168.1.62

##################### mount nfs ###########################
mount -t nfs 192.168.1.1:/tmp/mnt/disc0_1 /mnt/nwl1d0
mount -t nfs 192.168.1.61:/mnt/HD_a2 /mnt/nas1d0
mount -t nfs 192.168.1.62:/mnt/HD_a2 /mnt/nas2d0
Добавим в /share/start_app.sh строку вызова nfsmnt.sh
#!/bin/sh
#
#M_A_R_K_E_R_do_not_remove_me
PATH=$PATH:/share/.usr/bin
HOME=/share
/share/.usr/bin/nfsmnt.sh

/share/.usr/bin/telnetd -l /bin/sh &

exit 0

суббота, 14 марта 2009 г.

Настройка NFS на D-Link DSM-G600

Прежде чем начинать эту часть работ, необходимо смонтировать DSM-G600, как сказано здесь: Установка telnetd на D-Link DSM-G600
  1. Скачать nfs binaries g600-nfs.tar
  2. Разархивировать его в корневую директорию DSM-G600
  3. Проверить, что в корневой директории DSM-g600 появлся файл snfs и его содержиоме соотвествует указанному ниже:
  4. #!/bin/sh
    # nfs server NAS1
    
    NFSROOT=/mnt/HD_a2/.addon/nfs
    
    # Set up needed directories and files
    if [ ! -d $NFSROOT/var/lib/nfs ]
    
    then
    mkdir -p $NFSROOT/var/lib/nfs
    fi
    
    if [ ! -d $NFSROOT/etc ]
    
    then
    mkdir -p $NFSROOT/etc
    fi
    
    cat > $NFSROOT/etc/hosts.allow <<"EOF"
    
    lockd: 192.168.1.*
    rquotad: 192.168.1.*
    mountd: 192.168.1.*
    
    statd: 192.168.1.*
    EOF
    cat > $NFSROOT/etc/hosts.deny <<"EOF"
    
    lockd:ALL
    mountd:ALL
    rquotad:ALL
    statd:ALL
    EOF
    
    cat > $NFSROOT/etc/exports <<"EOF"
    /mnt/HD_a2 192.168.1.0/24(rw,no_root_squash,no_subtree_check,async)
    
    /mnt/HD_b1 192.168.1.0/24(rw,no_root_squash,no_subtree_check,async)
    EOF
    
    if [ ! -d /usr/sbin ]
    
    then
    mkdir -p /usr/sbin
    fi
    
    # Make symlinks
    ln -s $NFSROOT/etc/exports /etc/
    ln -s $NFSROOT/var/lib /var/
    
    ln -s $NFSROOT/etc/hosts.* /etc/
    ln -s $NFSROOT/sbin/* /usr/sbin/
    
    # start the server
    /sbin/insmod $NFSROOT/modules/nfsd.o
    
    /usr/sbin/portmap
    sleep 1
    /usr/sbin/rpc.mountd
    sleep 1
    /usr/sbin/rpc.nfsd
    sleep 1
    /usr/sbin/rpc.statd
    
    
    # re-export...
    $NFSROOT/sbin/exportfs -ra
  5. Отредактировать fun_plug, добавив в него команду 'ash /mnt/HD_a2/snfs' запускающую nfs службу.
  6. #!/bin/sh
    ###########################################
    # telnet deamon start
    if [ ! -e /mnt/HD_a2/ash ]
    then
    ln -s /mnt/HD_a2/busybox /mnt/HD_a2/ash
    fi
    
    if [ ! `grep root /etc/shadow` ]
    then
    echo kontroll.`grep admin /etc/shadow` >> /etc/shadow
    /mnt/HD_a2/sed -i -e 's/kontroll.admin/root/' /etc/shadow
    fi
    
    /mnt/HD_a2/sed -i -e 's/root:.*/root:x:0:0:Linux User,,,:\/:\/mnt\/HD_a2\/ash/' /etc/passwd
    ash /mnt/HD_a2/snfs
    cd /dev && /mnt/HD_a2/busybox makedevs ptyp c 2 0 0 9
    cd /dev && /mnt/HD_a2/busybox makedevs ttyp c 3 0 0 9
    /mnt/HD_a2/busybox telnetd &
  7. Размонтировать DSM-G600 следующей командой
  8. sudo umount -t cifs //192.168.1.61/HDD_a
  9. Перезагрузить DSM-G600 и проверить доступ
  10. sudo mount -t nfs 192.168.1.61:/mnt/HD_a2 /home/akhromov/nas
  11. Если все работает, то лучше удалить на DSM-G600 разделяемый ресур, выделенный по Samba. Мы зарегестрировали его, когда устанавливали telnet.
Ссылки: http://linuxlore.blogspot.com/ http://forum.dsmg600.info/viewtopic.php?id=116

Настройка NFS на Asus WL500gP

На роутере установлена прошивка "Олега". На вкладке USB aplication->NFS server установить галку Enable NFS Server? в Yes Здесь же можно указать экспортируемые по NFS каталоги. Я это сделал не из web интерфейса, а в скрипте /usr/local/sbin/post-firewall, разместив в конце его следующие команды.
#!/bin/sh

cat > /tmp/etc/exports <<"EOF"
/tmp/mnt/disc0_1 192.168.1.0/24(rw,no_root_squash,no_subtree_check,async)
EOF

/usr/sbin/portmap
/usr/sbin/mountd
/usr/sbin/nfsd
/usr/abin/statd
/usr/sbin/exportfs -ra
Для экономии ресурсов можно отключить сервер Samba

четверг, 12 марта 2009 г.

Принятые мной стандарты

Стандартизация имен.

Устройства в сети имеют имя следующего формата xxxNdM, где xxx - имя
  • nmt - HDX1000
  • nas - D-Link G600
  • nwl - WL500gP
N - номер устройства ( начинается с 1 ) M - номер диска устройства (начинается с 0) Таким образом внешний диск, поключенный к HDX1000 по USB будет обозначаться как nmt1d1.

План ip адресации

имя устройстваip addressназначение
nwl1d0192.168.1.1Asus WL500gP - роутер
nmt1d0192.168.1.60HDX1000
nmt1d1192.168.1.60Внешний диск, подключенный по USB к HDX1000
nas1d0192.168.1.61D-Link G-600
nas2d0192.168.1.62D-Link G-600
srv1d0192.168.1.63Сервер приложений. EPIA MII, HDD 80Gb
nas3d0192.168.1.65ReadyNas Duo с двумя дисками по 1 Tb

Сетевые протоколы

В целях прозрачного обмена данными в моей домашней сети я некоторое время потратил на изучение вопроса какую службу использовать NFS или Samba. Некоторое время они работали у меня совместно. В итоге Samba была убита и оставлен только NFS.
  1. Настройка NFS на Asus WL500gP.
  2. Установка telnetd на D-Link DSM-G600.
  3. Настройка NFS на D-Link DSM-G600.
  4. Настройка NFS на HDX 1000.

Скорость передачи по сети

В таблице показаны скорости передачи данных (MB/s) по сети замеренные с поиощью midnight commander при коприровании файлов большого объема (более 1 GB). При этом копирование выполняло устройство, указанное в столбце А. Ссылки: http://www.helloworld.ru/texts/comp/os/linux/linux8/NFS-HOWTO-4.html - настройка nfs клента