Интересное

Сообщение об ошибке

Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in drupal_environment_initialize() (line 684 of /home/www/nixtalk.com/includes/bootstrap.inc).

Развертывание ZFS на двух дисках

Опубликовано сб, 12/07/2013 - 10:33 пользователем Demontager

Позволяет создать Soft raid с ZFS на двух дисках

Особенности
1. Для двух дисков
2. ZFS устанавливается с recovery FreeBSD или любого загрузочного.
3. Настройка сети прописывается тут же. Просто внести свои данные.

  1. #!/bin/sh
  2. #demontager http://nixtalk.com
  3. #Createf slices
  4. gpart destroy -F ada0
  5. gpart destroy -F ada1
  6. gpart create -s gpt ada0
  7. gpart create -s gpt ada1
  8. gpart add -t freebsd-boot -l gpboot -b 40 -s 512K ada0
  9. gpart add -t freebsd-boot -l gpboot1 -b 40 -s 512K ada1
  10. gpart add -b 2048 -s 4G -t freebsd-swap -l swap0 ada0
  11. gpart add -b 2048 -s 4G -t freebsd-swap -l swap1 ada1
  12. gpart add -t freebsd-zfs -l disk0 ada0
  13. gpart add -t freebsd-zfs -l disk1 ada1
  14. gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
  15. gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
  16. if [ -e "/tmp/mntzfs" ]; then
  17. rm -rf /tmp/mntzfs
  18. fi
  19. #exit 0
  20. if [ ! -e "/boot/zfs" ]; then
  21. mkdir /boot/zfs
  22. fi
  23. #Create ZFS
  24. zpool create -o cachefile=/boot/zfs/zpool.cache -m none -f rpool raidz /dev/gpt/disk0 /dev/gpt/disk1
  25. zfs set checksum=fletcher4 rpool
  26. zfs create rpool/root
  27. mkdir /tmp/mntzfs
  28. zfs set mountpoint=/tmp/mntzfs rpool/root
  29. zfs create -o canmount=off rpool/root/usr
  30. zfs create -o canmount=off rpool/root/var
  31. zfs create -o compression=on -o exec=on -o setuid=off rpool/root/tmp
  32. zfs create -o compression=gzip -o setuid=off rpool/root/usr/ports
  33. zfs create -o compression=off -o exec=off -o setuid=off rpool/root/usr/ports/distfiles
  34. zfs create -o compression=off -o exec=off -o setuid=off rpool/root/usr/ports/packages
  35. zfs create -o compression=gzip -o exec=off -o setuid=off rpool/root/usr/src
  36. zfs create -o compression=lzjb rpool/root/usr/obj
  37. zfs create -o compression=lzjb -o exec=off -o setuid=off rpool/root/var/crash
  38. zfs create -o compression=off -o exec=off -o setuid=off rpool/root/var/empty
  39. zfs create -o compression=lzjb -o exec=on -o setuid=off rpool/root/var/tmp
  40. zpool export rpool
  41. zpool import -o cachefile=/tmp/zpool.cache rpool
  42. chmod 1777 /tmp/mntzfs/tmp
  43. chmod 1777 /tmp/mntzfs/var/tmp
  44.  
  45. #Fetch files
  46. cd /tmp/mntzfs
  47. mkdir fileinstall
  48. cd fileinstall
  49. fetch http://158.255.96.2/pub/FreeBSD/releases/amd64/9.2-RELEASE/base.txz
  50. fetch http://158.255.96.2/pub/FreeBSD/releases/amd64/9.2-RELEASE/kernel.txz
  51. cat base.txz | tar --unlink -xpJf - -C /tmp/mntzfs
  52. cat kernel.txz | tar --unlink -xpJf - -C /tmp/mntzfs
  53. cp /tmp/zpool.cache /tmp/mntzfs/boot/zfs/zpool.cache
  54.  
  55. #Add configs
  56. echo 'zfs_enable="YES"' >> /tmp/mntzfs/etc/rc.conf
  57. echo 'zfs_load="YES"' >> /tmp/mntzfs/boot/loader.conf
  58. echo 'if_em_load="YES"' >> /tmp/mntzfs/boot/loader.conf
  59. echo 'vfs.root.mountfrom="zfs:rpool/root"' >> /tmp/mntzfs/boot/loader.conf
  60. echo 'sshd_enable="YES"' >> /tmp/mntzfs/etc/rc.conf
  61. echo 'ifconfig_re0="inet 80.XX.XXX.XX netmask 255.255.255.248 broadcast 80.XX.XX.XX"' >> /tmp/mntzfs/etc/rc.conf
  62. echo 'defaultrouter="80.XX.XX.XX"' >> /tmp/mntzfs/etc/rc.conf
  63. echo 'hostname="FitVPS"' >> /tmp/mntzfs/etc/rc.conf

TODO:
Вручную следует прописать также такое, после тестирования добавлю в скрипт.

  1. chroot /tmp/mntzfs /bin/sh
  2. passwd root
  3. vi /etc/ssh/sshd_config
  4. # Изменяем PermitRootLogin no на yes иначе по ssh не сможем логится рутом
  5.  
  6. zfs set mountpoint=legacy rpool/root
  7. zfs set mountpoint=/tmp rpool/root/tmp
  8. zfs set mountpoint=/usr rpool/root/usr
  9. zfs set mountpoint=/var rpool/root/var
  10. zpool set bootfs=rpool/root rpool
  11.  
  12. # Создаем swap
  13. zfs create -V 8G rpool/swap
  14. zfs set checksum=off rpool/swap
  15. zfs set org.freebsd:swap=on rpool/swap
  16.  
  17. zfs set readonly=on rpool/root/var/empty
  18. touch /tmp/mntzfs/etc/fstab
  19.  
  20. cd /
  21. zfs umount -a
Поделится: 

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