1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

FreeBSD, Fibre Chanel, Настройка сторейджа ZFS

Тема в разделе 'Администрирование *nix', создана пользователем loko9988, 24 апр 2016.

  1. TopicStarter Overlay

    loko9988 B L A C K    L I S T Пользователи

    Сообщения:
    758
    Лайки:
    238
    Пол:
    Мужской
    Репутация:
    1
    Скажу сразу, это вторая установка, так как в первой не увиделась плата OCZ Revodrive3 x2, пришлось докупить два Интела 530 по 240GB для ZIL (многие ребята мне посоветовали ZIL в зеркало)

    FreeBSD FreeBSD FreeBSD
    Все оказалось проще чем LInux, страшно только на первый взгляд.
    Установка стандартная, я ставил на 240GB Intel SSD 230
    При вводе su, получил

    Код:
    $ su
    su: Sorry
    Код:
    SERVER# ee /etc/group
    Было:
    wheel:*:0:root
    Стало:
    wheel:*:0:root,user
    Фиксить надо сразу, за терминалом. Можно было в /etc/sshd_config врубить рут вход по паролю, но я буду использовать ключи, и для секурности так плохо.

    Код:
    SERVER# uname -a
    FreeBSD SEVER 10.3-RELEASE FreeBSD 10.3-RELEASE #0 r297264: Fri Mar 25 02:10:02 UTC 2016  [email protected]:/usr/obj/usr/src/sys/GENERIC  amd64
    Для начала соберём mc и nano, я их полюбил с дебиана, просто удобно.

    Код:
    SERVER# cd /usr/ports/misc/mc
    SERVER# make install all
    Код:
    SERVER# cd /usr/ports/editors/nano
    SERVER# make install all
    Код:
    SERVER# cd /usr/src/sys/amd64/conf
    #Клонируем с новым названием.
    SERVER# cp GENERIC FC-storage
    Код:
    SERVER# nano /usr/src/sys/amd64/conf/FC-storage
    Редактируем ядро
    Код:
    ident  FC-storage #Change to new name
    Код:
    #В конец файла вписать
    
    #My addon
    
    device  targ  #SCSI Target Mode Code
    device  targbh  #SCSI Target Mode Blackhole Device
    options  VFS_AIO
    options  ISP_TARGET_MODE
    options  ISP_DEFAULT_ROLES=1
    options   IPFIREWALL_DEFAULT_TO_ACCEPT # правило на акцесс дефаулт фаервалл
    options  IPFIREWALL     # встраиваем поддержку файрволла в ядро
    options  IPFIREWALL_VERBOSE   # вывод информации об отброшенных пакетах
    options  IPFIREWALL_VERBOSE_LIMIT=100   # ограничение, чтоб весь /var
                 # логами не засрали
    options  IPDIVERT     # поддержка IP-маскарадинга
    options  DUMMYNET     # поддержка DUMMYNET (искуственное
               # ограничение пропускной способности
               # сети, может быть нужно если есть
               # необходимость урезать канал одним
               # и разжать другим компьютерам)
               device crypto # Криптография
    options GEOM_ELI # Гели шифр
    и собираем ядро
    Код:
     SERVER# cd /usr/src
    Код:
      SERVER# make -j12 buildkernel KERNCONF=FC-storage
    после того, как ядро будет собрано, устанавливаем его
    Код:
      SERVER# make -j12 installkernel KERNCONF=FC-storage
    Код:
    SERVER# reboot
    Код:
    SERVER# uname -a
    FreeBSD SEVER 10.3-RELEASE FreeBSD 10.3-RELEASE #0: Sun Apr 24 13:00:57 MSK 2016  user@SEVER :/usr/obj/usr/src/sys/FC-storage  amd64

    Теперь настроим мониторинг смарта, он нужен как под ССД, так и для мониторинга дисков в массиве хранилища. Поставим smartctl
    Код:
    SERVER# whereis smartmontools
    smartmontools: /usr/ports/sysutils/smartmontools
    Код:
    SERVER# make install all
    SERVER# echo 'smartd_enable="YES"' >> /etc/rc.conf
    Я обычно тестирую харды мельком. Мне достаточно, смотрю не посыпался ли диск и не умирают ли бошки.
    Код:
    SERVER# smartctl -a /dev/da11 | grep Pre-fail
    Теперь самое интересное и вкусное. Работа с массивом из 16 дисков, я решил делать RAIDZ2.

    Удаляем метаданные.
    Код:
    SERVER# zpool labelclear /dev/da0
    SERVER# zpool labelclear /dev/da1
    SERVER# zpool labelclear /dev/da2
    SERVER# zpool labelclear /dev/da3
    SERVER# zpool labelclear /dev/da4
    SERVER# zpool labelclear /dev/da5
    SERVER# zpool labelclear /dev/da6
    SERVER# zpool labelclear /dev/da7
    SERVER# zpool labelclear /dev/da8
    SERVER# zpool labelclear /dev/da9
    SERVER# zpool labelclear /dev/da10
    SERVER# zpool labelclear /dev/da11
    SERVER# zpool labelclear /dev/da12
    SERVER# zpool labelclear /dev/da13
    SERVER# zpool labelclear /dev/da14
    SERVER# zpool labelclear /dev/da15
    
    Создаём GPT разделы.
    Код:
    SERVER# gpart create -s GPT /dev/da0
    SERVER# gpart create -s GPT /dev/da1
    SERVER# gpart create -s GPT /dev/da2
    SERVER# gpart create -s GPT /dev/da3
    SERVER# gpart create -s GPT /dev/da4
    SERVER# gpart create -s GPT /dev/da5
    SERVER# gpart create -s GPT /dev/da6
    SERVER# gpart create -s GPT /dev/da7
    SERVER# gpart create -s GPT /dev/da8
    SERVER# gpart create -s GPT /dev/da9
    SERVER# gpart create -s GPT /dev/da10
    SERVER# gpart create -s GPT /dev/da11
    SERVER# gpart create -s GPT /dev/da12
    SERVER# gpart create -s GPT /dev/da13
    SERVER# gpart create -s GPT /dev/da14
    SERVER# gpart create -s GPT /dev/da15
    
    Перед тем как что-то сделать, нам нужно создать GPT метки на дисках, это необходимо во многих случаях, например смене контроллера или апгрейде системы и вообще так правильнее. И я тут делаю немного по своему, чтобы не запутаться.
    Делаем по нормальному сектор 4К
    Код:
    SERVER# gpart add -t freebsd-zfs -l disk-0-WCC1P1249235 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WCC1P1249235
    SERVER# gpart add -t freebsd-zfs -l disk-1-WMC1P0387635 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0387635
    SERVER# gpart add -t freebsd-zfs -l disk-2-WMC1P0D926VJ -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0D926VJ
    SERVER# gpart add -t freebsd-zfs -l disk-3-WCC1P1249261 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WCC1P1249261
    SERVER# gpart add -t freebsd-zfs -l disk-4-WMC1P0D03WPC -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0D03WPC
    SERVER# gpart add -t freebsd-zfs -l disk-5-WMC1P0DCK304 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0DCK304
    SERVER# gpart add -t freebsd-zfs -l disk-6-WCC1P1263622 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WCC1P1263622
    SERVER# gpart add -t freebsd-zfs -l disk-7-WMC1P0D24E09 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0D24E09
    SERVER# gpart add -t freebsd-zfs -l disk-8-WMC1P0DENK26 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0DENK26
    SERVER# gpart add -t freebsd-zfs -l disk-9-WMC1P0283100 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0283100
    SERVER# gpart add -t freebsd-zfs -l disk-10-WMC1P0D2CTS6 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0D2CTS6
    SERVER# gpart add -t freebsd-zfs -l disk-11-WMC1P0DK165Z -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0DK165Z
    SERVER# gpart add -t freebsd-zfs -l disk-12-WMC1P0311813 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0311813
    SERVER# gpart add -t freebsd-zfs -l disk-13-WMC1P0D57S6X -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0D57S6X
    SERVER# gpart add -t freebsd-zfs -l disk-14-WMC1P0316872 -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0316872
    SERVER# gpart add -t freebsd-zfs -l disk-15-WMC1P0D7CMNK -a 4K /dev/diskid/DISK-%20%20%20%20%20WD-WMC1P0D7CMNK
    
    Чекаем, и проверяем все ли идёт по задуманному плану.
    Код:
    SERVER# ls /dev/gpt
    disk-0-WCC1P1249235  disk-12-WMC1P0311813  disk-2-WMC1P0D926VJ  disk-6-WCC1P1263622
    disk-1-WMC1P0387635  disk-13-WMC1P0D57S6X  disk-3-WCC1P1249261  disk-7-WMC1P0D24E09
    disk-10-WMC1P0D2CTS6  disk-14-WMC1P0316872  disk-4-WMC1P0D03WPC  disk-8-WMC1P0DENK26
    disk-11-WMC1P0DK165Z  disk-15-WMC1P0D7CMNK  disk-5-WMC1P0DCK304  disk-9-WMC1P0283100
    Начинаем теперь мутить Шифрование. Как я продумал хранение, это история отдельная, и она простая, но хитрая.
    Папочки для ключей
    Код:
    SERVER# mkdir /private
    SERVER# mkdir /keys
    Создаём ключ на 128кб
    Код:
    SERVER# dd if=/dev/random of=/keys/master.ad1 bs=128k count=1
    Защифруем разделы GELI
    Код:
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-0-WCC1P1249235
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-12-WMC1P0311813
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-2-WMC1P0D926VJ
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-6-WCC1P1263622
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-1-WMC1P0387635
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-13-WMC1P0D57S6X
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-3-WCC1P1249261
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-7-WMC1P0D24E09
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-10-WMC1P0D2CTS6
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-14-WMC1P0316872
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-4-WMC1P0D03WPC
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-8-WMC1P0DENK26
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-11-WMC1P0DK165Z
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-15-WMC1P0D7CMNK
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-5-WMC1P0DCK304
    SERVER# geli init -s 4096 -P -K /keys/master.ad1 /dev/gpt/disk-9-WMC1P0283100
    
    
    Metadata backup can be found in /var/backups/gpt_disk-9-WMC1P0283100.eli and
    can be restored with the following command:
    # geli restore /var/backups/gpt_disk-9-WMC1P0283100.eli /dev/gpt/disk-9-WMC1P0283100
    Не забываем почистить данные, я скопировал все бекапы в надежное место. на TrueCrypt....но это другая история....
    Последнее редактирование: 24 апр 2016
    BIOS23 и Димка11 нравится это.
  2. artice Пользователи

    Сообщения:
    244
    Лайки:
    133
    Пол:
    Мужской
    Репутация:
    -1
  3. Oasmia Пользователи

    Сообщения:
    18
    Лайки:
    5
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Russian Federation Russian Federation
  4. Homriel Пользователи

    Сообщения:
    144
    Лайки:
    42
    Пол:
    Мужской
    Репутация:
    -2
    Команда:
    Unnamed
    Страна:
    Russian Federation Russian Federation
    К чему эта тема?) Или я чего то не знаю?:D
  5. TopicStarter Overlay

    loko9988 B L A C K    L I S T Пользователи

    Сообщения:
    758
    Лайки:
    238
    Пол:
    Мужской
    Репутация:
    1
    Вот, вы поможете, модеры потом почистят тему..... я буду постить куски.... А вы подфлуживать )) И тогда норм ))
    --- добавлено: 24 апр 2016 в 19:58 ---
    Подцепим всю нашу шифрованную систему.
    Код:
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-0-WCC1P1249235
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-12-WMC1P0311813
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-2-WMC1P0D926VJ
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-6-WCC1P1263622
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-1-WMC1P0387635
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-13-WMC1P0D57S6X
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-3-WCC1P1249261
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-7-WMC1P0D24E09
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-10-WMC1P0D2CTS6
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-14-WMC1P0316872
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-4-WMC1P0D03WPC
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-8-WMC1P0DENK26
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-11-WMC1P0DK165Z
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-15-WMC1P0D7CMNK
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-5-WMC1P0DCK304
    SERVER# geli attach -p -k /keys/master.ad1 /dev/gpt/disk-9-WMC1P0283100
    Смотрим подцепилось ли все.
    Код:
    SERVER# ls /dev/gpt
    disk-0-WCC1P1249235  disk-12-WMC1P0311813  disk-2-WMC1P0D926VJ  disk-6-WCC1P1263622
    disk-0-WCC1P1249235.eli  disk-12-WMC1P0311813.eli  disk-2-WMC1P0D926VJ.eli  disk-6-WCC1P1263622.eli
    disk-1-WMC1P0387635  disk-13-WMC1P0D57S6X  disk-3-WCC1P1249261  disk-7-WMC1P0D24E09
    disk-1-WMC1P0387635.eli  disk-13-WMC1P0D57S6X.eli  disk-3-WCC1P1249261.eli  disk-7-WMC1P0D24E09.eli
    disk-10-WMC1P0D2CTS6  disk-14-WMC1P0316872  disk-4-WMC1P0D03WPC  disk-8-WMC1P0DENK26
    disk-10-WMC1P0D2CTS6.eli  disk-14-WMC1P0316872.eli  disk-4-WMC1P0D03WPC.eli  disk-8-WMC1P0DENK26.eli
    disk-11-WMC1P0DK165Z  disk-15-WMC1P0D7CMNK  disk-5-WMC1P0DCK304  disk-9-WMC1P0283100
    disk-11-WMC1P0DK165Z.eli  disk-15-WMC1P0D7CMNK.eli  disk-5-WMC1P0DCK304.eli  disk-9-WMC1P0283100.eli
    Да оно заработало, теперь задаём геометрию нашему массиву.
    Код:
    SERVER#  gnop create -S 4096 /dev/gpt/disk-0-WCC1P1249235.eli
    Теперь собираем пул RAIDZ2 и определяем его свойства (при необходимости)
    Код:
    SERVER# zpool create -f -o ashift=12 DrWho raidz2 /dev/gpt/disk-0-WCC1P1249235.eli.nop /dev/gpt/disk-1-WMC1P0387635.eli /dev/gpt/disk-10-WMC1P0D2CTS6.eli /dev/gpt/disk-11-WMC1P0DK165Z.eli /dev/gpt/disk-12-WMC1P0311813.eli /dev/gpt/disk-13-WMC1P0D57S6X.eli /dev/gpt/disk-14-WMC1P0316872.eli /dev/gpt/disk-15-WMC1P0D7CMNK.eli /dev/gpt/disk-2-WMC1P0D926VJ.eli /dev/gpt/disk-3-WCC1P1249261.eli /dev/gpt/disk-4-WMC1P0D03WPC.eli /dev/gpt/disk-5-WMC1P0DCK304.eli /dev/gpt/disk-6-WCC1P1263622.eli /dev/gpt/disk-7-WMC1P0D24E09.eli /dev/gpt/disk-8-WMC1P0DENK26.eli /dev/gpt/disk-9-WMC1P0283100.eli
    
    SERVER# zfs set atime=off DrWho
    SERVER# zfs set checksum=fletcher4 DrWho
    удаляем файлы геометрии дисков
    Код:
    SERVER# zpool export DrWho
    SERVER# gnop destroy /dev/gpt/disk-0-WCC1P1249235.eli.nop
    SERVER# zpool import -d /dev/gpt DrWho
    Пул создан. По всем канонам, 4к блок и вся няшка.
    Тестируем и смотрим.
    Код:
    SERVER# zpool status
      pool: DrWho
    state: ONLINE
      scan: none requested
    config:
    
      NAME  STATE  READ WRITE CKSUM
      DrWho  ONLINE  0  0  0
      raidz2-0  ONLINE  0  0  0
      gpt/disk-0-WCC1P1249235.eli  ONLINE  0  0  0
      gpt/disk-1-WMC1P0387635.eli  ONLINE  0  0  0
      gpt/disk-10-WMC1P0D2CTS6.eli  ONLINE  0  0  0
      gpt/disk-11-WMC1P0DK165Z.eli  ONLINE  0  0  0
      gpt/disk-12-WMC1P0311813.eli  ONLINE  0  0  0
      gpt/disk-13-WMC1P0D57S6X.eli  ONLINE  0  0  0
      gpt/disk-14-WMC1P0316872.eli  ONLINE  0  0  0
      gpt/disk-15-WMC1P0D7CMNK.eli  ONLINE  0  0  0
      gpt/disk-2-WMC1P0D926VJ.eli  ONLINE  0  0  0
      gpt/disk-3-WCC1P1249261.eli  ONLINE  0  0  0
      gpt/disk-4-WMC1P0D03WPC.eli  ONLINE  0  0  0
      gpt/disk-5-WMC1P0DCK304.eli  ONLINE  0  0  0
      gpt/disk-6-WCC1P1263622.eli  ONLINE  0  0  0
      gpt/disk-7-WMC1P0D24E09.eli  ONLINE  0  0  0
      gpt/disk-8-WMC1P0DENK26.eli  ONLINE  0  0  0
      gpt/disk-9-WMC1P0283100.eli  ONLINE  0  0  0
    
    errors: No known data errors
    Код:
    SERVER# zdb
    DrWho:
      version: 5000
      name: 'DrWho'
      state: 0
      txg: 35
      pool_guid: 3573952123315188108
      hostid: 4061695572
      hostname: '***********'
      vdev_children: 1
      vdev_tree:
      type: 'root'
      id: 0
      guid: 3573952123315188108
      children[0]:
      type: 'raidz'
      id: 0
      guid: 7049476547936132196
      nparity: 2
      metaslab_array: 34
      metaslab_shift: 38
      ashift: 12
      asize: 32006306004992
      is_log: 0
      create_txg: 4
      children[0]:
      type: 'disk'
      id: 0
      guid: 11110244474255832665
      path: '/dev/gpt/disk-0-WCC1P1249235.eli'
      phys_path: '/dev/gpt/disk-0-WCC1P1249235.eli'
      whole_disk: 1
      create_txg: 4
      children[1]:
      type: 'disk'
      id: 1
      guid: 10683934939186322625
      path: '/dev/gpt/disk-1-WMC1P0387635.eli'
      phys_path: '/dev/gpt/disk-1-WMC1P0387635.eli'
      whole_disk: 1
      create_txg: 4
      children[2]:
      type: 'disk'
      id: 2
      guid: 18442998529827356673
      path: '/dev/gpt/disk-10-WMC1P0D2CTS6.eli'
      phys_path: '/dev/gpt/disk-10-WMC1P0D2CTS6.eli'
      whole_disk: 1
      create_txg: 4
      children[3]:
      type: 'disk'
      id: 3
      guid: 4169437610144466422
      path: '/dev/gpt/disk-11-WMC1P0DK165Z.eli'
      phys_path: '/dev/gpt/disk-11-WMC1P0DK165Z.eli'
      whole_disk: 1
      create_txg: 4
      children[4]:
      type: 'disk'
      id: 4
      guid: 3643147932814442345
      path: '/dev/gpt/disk-12-WMC1P0311813.eli'
      phys_path: '/dev/gpt/disk-12-WMC1P0311813.eli'
      whole_disk: 1
      create_txg: 4
      children[5]:
      type: 'disk'
      id: 5
      guid: 1418425124253562487
      path: '/dev/gpt/disk-13-WMC1P0D57S6X.eli'
      phys_path: '/dev/gpt/disk-13-WMC1P0D57S6X.eli'
      whole_disk: 1
      create_txg: 4
      children[6]:
      type: 'disk'
      id: 6
      guid: 13576894560285249385
      path: '/dev/gpt/disk-14-WMC1P0316872.eli'
      phys_path: '/dev/gpt/disk-14-WMC1P0316872.eli'
      whole_disk: 1
      create_txg: 4
      children[7]:
      type: 'disk'
      id: 7
      guid: 5830585348905564529
      path: '/dev/gpt/disk-15-WMC1P0D7CMNK.eli'
      phys_path: '/dev/gpt/disk-15-WMC1P0D7CMNK.eli'
      whole_disk: 1
      create_txg: 4
      children[8]:
      type: 'disk'
      id: 8
      guid: 4923887563293993064
      path: '/dev/gpt/disk-2-WMC1P0D926VJ.eli'
      phys_path: '/dev/gpt/disk-2-WMC1P0D926VJ.eli'
      whole_disk: 1
      create_txg: 4
      children[9]:
      type: 'disk'
      id: 9
      guid: 853189263265527741
      path: '/dev/gpt/disk-3-WCC1P1249261.eli'
      phys_path: '/dev/gpt/disk-3-WCC1P1249261.eli'
      whole_disk: 1
      create_txg: 4
      children[10]:
      type: 'disk'
      id: 10
      guid: 18228026089619356596
      path: '/dev/gpt/disk-4-WMC1P0D03WPC.eli'
      phys_path: '/dev/gpt/disk-4-WMC1P0D03WPC.eli'
      whole_disk: 1
      create_txg: 4
      children[11]:
      type: 'disk'
      id: 11
      guid: 5195777921726480141
      path: '/dev/gpt/disk-5-WMC1P0DCK304.eli'
      phys_path: '/dev/gpt/disk-5-WMC1P0DCK304.eli'
      whole_disk: 1
      create_txg: 4
      children[12]:
      type: 'disk'
      id: 12
      guid: 159146434052988501
      path: '/dev/gpt/disk-6-WCC1P1263622.eli'
      phys_path: '/dev/gpt/disk-6-WCC1P1263622.eli'
      whole_disk: 1
      create_txg: 4
      children[13]:
      type: 'disk'
      id: 13
      guid: 10276480053271308305
      path: '/dev/gpt/disk-7-WMC1P0D24E09.eli'
      phys_path: '/dev/gpt/disk-7-WMC1P0D24E09.eli'
      whole_disk: 1
      create_txg: 4
      children[14]:
      type: 'disk'
      id: 14
      guid: 9180863127101982571
      path: '/dev/gpt/disk-8-WMC1P0DENK26.eli'
      phys_path: '/dev/gpt/disk-8-WMC1P0DENK26.eli'
      whole_disk: 1
      create_txg: 4
      children[15]:
      type: 'disk'
      id: 15
      guid: 13022657809225516887
      path: '/dev/gpt/disk-9-WMC1P0283100.eli'
      phys_path: '/dev/gpt/disk-9-WMC1P0283100.eli'
      whole_disk: 1
      create_txg: 4
      features_for_read:
      com.delphix:hole_birth
      com.delphix:embedded_data
    Последнее редактирование модератором: 2 май 2016
  6. artice Пользователи

    Сообщения:
    244
    Лайки:
    133
    Пол:
    Мужской
    Репутация:
    -1
    пофлудил
  7. Димка11 Пользователи

    Сообщения:
    231
    Лайки:
    32
    Пол:
    Мужской
    Репутация:
    1
    Страна:
    Russian Federation Russian Federation
    давно искал, без рекламы и регистрации, спасибо.
  8. TopicStarter Overlay

    loko9988 B L A C K    L I S T Пользователи

    Сообщения:
    758
    Лайки:
    238
    Пол:
    Мужской
    Репутация:
    1
    Оказывается, в момент создания ZFS-пула, файловая система определяет геометрию диска (это очевидно), и в свойства пула прописывается соответствующее значение параметра ashift (по умолчанию ashift=9).
    2 в 9-й степени равняется 512 (Байтам), соответственно 4КБ - это 2 в 12-й степени, и, соответственно, правильное значение для диска с 4КБ-сектором: ashift=12

    Тут я думал что муки закончаться, но это только начало........
    Теперь Начинаем крутить ZFS.

    Первым делом разделы и создадим метки на наших SSD
    Код:
    SERVER# gpart create -s GPT /dev/diskid/DISK-PHDA428200FT2403GN
    SERVER# gpart create -s GPT /dev/diskid/DISK-PHDA428200JW2403GN
    SERVER# gpart add -t freebsd-zfs -l ssd-0-PHDA428200FT2403GN -b 2048 -a 4K /dev/diskid/DISK-PHDA428200FT2403GN
    SERVER# gpart add -t freebsd-zfs -l ssd-1-PHDA428200JW2403GN -b 2048 -a 4K /dev/diskid/DISK-PHDA428200JW2403GN
    Создаём ZIL устройство из зеркалирования наших ссд, чтобы с случае смерти, ничего не пропало.
    Код:
    SERVER# zpool add DrWho log mirror /dev/gpt/ssd-0-PHDA428200FT2403GN /dev/gpt/ssd-1-PHDA428200JW2403GN
    Проверяем.
    Код:
    SERVER# zpool status
      pool: DrWho
    state: ONLINE
      scan: none requested
    config:
    
      NAME  STATE  READ WRITE CKSUM
      DrWho  ONLINE  0  0  0
      raidz2-0  ONLINE  0  0  0
      gpt/disk-0-WCC1P1249235.eli  ONLINE  0  0  0
      gpt/disk-1-WMC1P0387635.eli  ONLINE  0  0  0
      gpt/disk-10-WMC1P0D2CTS6.eli  ONLINE  0  0  0
      gpt/disk-11-WMC1P0DK165Z.eli  ONLINE  0  0  0
      gpt/disk-12-WMC1P0311813.eli  ONLINE  0  0  0
      gpt/disk-13-WMC1P0D57S6X.eli  ONLINE  0  0  0
      gpt/disk-14-WMC1P0316872.eli  ONLINE  0  0  0
      gpt/disk-15-WMC1P0D7CMNK.eli  ONLINE  0  0  0
      gpt/disk-2-WMC1P0D926VJ.eli  ONLINE  0  0  0
      gpt/disk-3-WCC1P1249261.eli  ONLINE  0  0  0
      gpt/disk-4-WMC1P0D03WPC.eli  ONLINE  0  0  0
      gpt/disk-5-WMC1P0DCK304.eli  ONLINE  0  0  0
      gpt/disk-6-WCC1P1263622.eli  ONLINE  0  0  0
      gpt/disk-7-WMC1P0D24E09.eli  ONLINE  0  0  0
      gpt/disk-8-WMC1P0DENK26.eli  ONLINE  0  0  0
      gpt/disk-9-WMC1P0283100.eli  ONLINE  0  0  0
      logs
      mirror-1  ONLINE  0  0  0
      gpt/ssd-0-PHDA428200FT2403GN  ONLINE  0  0  0
      gpt/ssd-1-PHDA428200JW2403GN  ONLINE  0  0  0
    
    errors: No known data errors
    Все отлично добавилось.

    Вот мои значения параметров кеша ARC.
    Код:
    SERVER# sysctl vfs.zfs.arc_min
    vfs.zfs.arc_min: 13452182528
    SERVER# sysctl vfs.zfs.arc_max
    vfs.zfs.arc_max: 107617460224
    SERVER# sysctl vfs.zfs.arc_meta_limit
    vfs.zfs.arc_meta_limit: 26904365056
    Код:
    SERVER# reboot
    И автоматизация и тест.
    Код:
    zpool export DrWho
    
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-0-WCC1P1249235
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-12-WMC1P0311813
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-2-WMC1P0D926VJ
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-6-WCC1P1263622
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-1-WMC1P0387635
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-13-WMC1P0D57S6X
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-3-WCC1P1249261
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-7-WMC1P0D24E09
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-10-WMC1P0D2CTS6
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-14-WMC1P0316872
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-4-WMC1P0D03WPC
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-8-WMC1P0DENK26
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-11-WMC1P0DK165Z
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-15-WMC1P0D7CMNK
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-5-WMC1P0DCK304
    geli attach -p -k /keys/master.ad1 /dev/gpt/disk-9-WMC1P0283100
    
    zpool import  DrWho

    ............Неужели прекратилось... теперь перейдём к важному аспекту, это настройка FC и его раздача.

    В /boot/loader.conf я добавил, что есть загрузка драйвера HBAшки и микрокода к ней и загрузка модуля CAM target layer, который собственно и отвечает за предоставление ресурсов блочных устройств.
    Код:
    # AIO module
    aio_load="YES"
    # CAM Control
    ctl_load="YES"

    В /boot/device.hints можно задать режим работы карточки индивидуально для каждого порта
    Код:
    # FC HBA Setup
    # role 0 - none
    # role 1 - target
    # role 2 - initiator
    # role 3 - both
    hint.isp.0.role="1"
    hint.isp.1.role="1"
    hint.isp.2.role="1"
    hint.isp.3.role="0"
    hint.isp.4.role="0"
    hint.isp.5.role="0"
    hint.isp.6.role="0"
    hint.isp.7.role="0"
    Код:
    SERVER# reboot
    Будем считать что карты завелись, переменные драйвера можно посмотреть через sysctl
    Код:
    SERVER# sysctl dev.isp.
    dev.isp.7.topo: 0
    dev.isp.7.loopstate: 0
    dev.isp.7.fwstate: 0
    dev.isp.7.linkstate: 0
    dev.isp.7.speed: 0
    dev.isp.7.role: 2
    dev.isp.7.gone_device_time: 30
    dev.isp.7.loop_down_limit: 60
    dev.isp.7.wwpn: 2377900762154942309
    dev.isp.7.wwnn: 2305843168117014373
    dev.isp.7.%parent: pci134
    dev.isp.7.%pnpinfo: vendor=0x1077 device=0x2432 subvendor=0x1077 subdevice=0x0146 class=0x0c0400
    dev.isp.7.%location: pci0:134:0:1
    dev.isp.7.%driver: isp
    dev.isp.7.%desc: Qlogic ISP 2432 PCI FC-AL Adapter
    dev.isp.6.topo: 0
    dev.isp.6.loopstate: 0
    dev.isp.6.fwstate: 0
    dev.isp.6.linkstate: 0
    dev.isp.6.speed: 0
    dev.isp.6.role: 2
    dev.isp.6.gone_device_time: 30
    dev.isp.6.loop_down_limit: 60
    dev.isp.6.wwpn: 2377900762154942308
    dev.isp.6.wwnn: 2305843168117014372
    dev.isp.6.%parent: pci134
    dev.isp.6.%pnpinfo: vendor=0x1077 device=0x2432 subvendor=0x1077 subdevice=0x0146 class=0x0c0400
    dev.isp.6.%location: pci0:134:0:0
    dev.isp.6.%driver: isp
    dev.isp.6.%desc: Qlogic ISP 2432 PCI FC-AL Adapter
    dev.isp.5.topo: 0
    dev.isp.5.loopstate: 0
    dev.isp.5.fwstate: 0
    dev.isp.5.linkstate: 0
    dev.isp.5.speed: 0
    dev.isp.5.role: 2
    dev.isp.5.gone_device_time: 30
    dev.isp.5.loop_down_limit: 60
    dev.isp.5.wwpn: 2377900762154942311
    dev.isp.5.wwnn: 2305843168117014375
    dev.isp.5.%parent: pci133
    dev.isp.5.%pnpinfo: vendor=0x1077 device=0x2432 subvendor=0x1077 subdevice=0x0146 class=0x0c0400
    dev.isp.5.%location: pci0:133:0:1
    dev.isp.5.%driver: isp
    dev.isp.5.%desc: Qlogic ISP 2432 PCI FC-AL Adapter
    dev.isp.4.topo: 0
    dev.isp.4.loopstate: 0
    dev.isp.4.fwstate: 0
    dev.isp.4.linkstate: 0
    dev.isp.4.speed: 0
    dev.isp.4.role: 2
    dev.isp.4.gone_device_time: 30
    dev.isp.4.loop_down_limit: 60
    dev.isp.4.wwpn: 2377900762154942310
    dev.isp.4.wwnn: 2305843168117014374
    dev.isp.4.%parent: pci133
    dev.isp.4.%pnpinfo: vendor=0x1077 device=0x2432 subvendor=0x1077 subdevice=0x0146 class=0x0c0400
    dev.isp.4.%location: pci0:133:0:0
    dev.isp.4.%driver: isp
    dev.isp.4.%desc: Qlogic ISP 2432 PCI FC-AL Adapter
    dev.isp.3.topo: 0
    dev.isp.3.loopstate: 0
    dev.isp.3.fwstate: 0
    dev.isp.3.linkstate: 0
    dev.isp.3.speed: 0
    dev.isp.3.role: 2
    dev.isp.3.gone_device_time: 30
    dev.isp.3.loop_down_limit: 60
    dev.isp.3.wwpn: 2378182195041886750
    dev.isp.3.wwnn: 2305843126027248158
    dev.isp.3.%parent: pci6
    dev.isp.3.%pnpinfo: vendor=0x1077 device=0x2432 subvendor=0x1077 subdevice=0x0146 class=0x0c0400
    dev.isp.3.%location: pci0:6:0:1
    dev.isp.3.%driver: isp
    dev.isp.3.%desc: Qlogic ISP 2432 PCI FC-AL Adapter
    dev.isp.2.topo: 0
    dev.isp.2.loopstate: 9
    dev.isp.2.fwstate: 3
    dev.isp.2.linkstate: 1
    dev.isp.2.speed: 4
    dev.isp.2.role: 2
    dev.isp.2.gone_device_time: 30
    dev.isp.2.loop_down_limit: 60
    dev.isp.2.wwpn: 2377900720063078942
    dev.isp.2.wwnn: 2305843126025151006
    dev.isp.2.%parent: pci6
    dev.isp.2.%pnpinfo: vendor=0x1077 device=0x2432 subvendor=0x1077 subdevice=0x0146 class=0x0c0400
    dev.isp.2.%location: pci0:6:0:0
    dev.isp.2.%driver: isp
    dev.isp.2.%desc: Qlogic ISP 2432 PCI FC-AL Adapter
    dev.isp.1.topo: 0
    dev.isp.1.loopstate: 0
    dev.isp.1.fwstate: 0
    dev.isp.1.linkstate: 0
    dev.isp.1.speed: 0
    dev.isp.1.role: 2
    dev.isp.1.gone_device_time: 30
    dev.isp.1.loop_down_limit: 60
    dev.isp.1.wwpn: 2378745144999502366
    dev.isp.1.wwnn: 2305843126031442462
    dev.isp.1.%parent: pci5
    dev.isp.1.%pnpinfo: vendor=0x1077 device=0x2432 subvendor=0x1077 subdevice=0x0146 class=0x0c0400
    dev.isp.1.%location: pci0:5:0:1
    dev.isp.1.%driver: isp
    dev.isp.1.%desc: Qlogic ISP 2432 PCI FC-AL Adapter
    dev.isp.0.topo: 0
    dev.isp.0.loopstate: 9
    dev.isp.0.fwstate: 3
    dev.isp.0.linkstate: 1
    dev.isp.0.speed: 4
    dev.isp.0.role: 2
    dev.isp.0.gone_device_time: 30
    dev.isp.0.loop_down_limit: 60
    dev.isp.0.wwpn: 2378463670020694558
    dev.isp.0.wwnn: 2305843126029345310
    dev.isp.0.%parent: pci5
    dev.isp.0.%pnpinfo: vendor=0x1077 device=0x2432 subvendor=0x1077 subdevice=0x0146 class=0x0c0400
    dev.isp.0.%location: pci0:5:0:0
    dev.isp.0.%driver: isp
    dev.isp.0.%desc: Qlogic ISP 2432 PCI FC-AL Adapter
    dev.isp.%parent:
    В качестве блочного тома будет выступать файл и будет отдан как target device
    Код:
    SERVER# dd of=/DrWho/LUN5TB if=/dev/zero bs=1M count=5242880 > /file.done & 
  9. artice Пользователи

    Сообщения:
    244
    Лайки:
    133
    Пол:
    Мужской
    Репутация:
    -1
    без смс как скачать?
  10. Димка11 Пользователи

    Сообщения:
    231
    Лайки:
    32
    Пол:
    Мужской
    Репутация:
    1
    Страна:
    Russian Federation Russian Federation
    отправляешь регистрацию на номер 1488 с паролем 228 и начинается скачка
  11. Oasmia Пользователи

    Сообщения:
    18
    Лайки:
    5
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Russian Federation Russian Federation
    локо че курил, дай мне
  12. werewolf Old school Пользователи

    Сообщения:
    507
    Лайки:
    157
    Пол:
    Мужской
    Репутация:
    1
    Видимо маны по FreeBSD...
    BIOS23 нравится это.
  13. BIOS23 Пользователи

    Сообщения:
    289
    Лайки:
    43
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Israel Israel
    :DЛоко пишет гайд по созданию своей сборки фри бсд без дырок под создание сторейдж ZFS (удобно для бекапов и хранение фалов)
  14. TopicStarter Overlay

    loko9988 B L A C K    L I S T Пользователи

    Сообщения:
    758
    Лайки:
    238
    Пол:
    Мужской
    Репутация:
    1
    Код:
    5242880+0 records in
    5242880+0 records out
    5497558138880 bytes transferred in 10939.853194 secs (502525769 bytes/sec)
    Так, глянул, и понял что где-то затупил.
    И собирал на тесте другое ядро.
    В итоге выкладываю своё ядро . Которое работает. По этому ещё раз пересобираем.

    Код:
    SERVER# reboot
    Код:
    SERVER#  ctladm port -l
    Port Online Frontend Name  pp vp
    0  NO  camsim  camsim  0  0  naa.50000004b834fb01
    1  YES  ioctl  ioctl  0  0
    2  YES  tpc  tpc  0  0
    3  NO  camtgt  isp0  0  0
    4  NO  camtgt  isp1  0  0
    5  NO  camtgt  isp2  0  0
    6  NO  camtgt  isp3  0  0
    7  NO  camtgt  isp4  0  0
    8  NO  camtgt  isp5  0  0
    9  NO  camtgt  isp6  0  0
    10  NO  camtgt  isp7  0  0
    Тут видно что в системе есть как FC порты от QLogicовской карточки так и подсистема iSCSI.
    Главное что есть нужные мне FC порты. Видно что они в оффлайне, т.е. режим target на карточке не используется


    Включаем все порты.
    Код:
    SERVER# ctladm port -o on -t fc
    Раздаём наш лун
    Код:
    SERVER# ctladm create -b block -B 4096 -o file=/DrWho/LUN5TB -o vendor=FreeBSD -o product="FC Disk" -S FC0001 -d FC0001ID
    Внимание после рестарта пропадут все изменения с ctladm , по этому если хотим то прописываем в rc

    ///////////////////////////////////////////////На этом связь с FreeBSD окончена, скриптуем сами//////////////////////////////////////
  15. DjШлепок Guest

    Репутация:
    0
    Тема будет продолжена в ближайший месяц. по нескольким причинам.
    1. Смерть 2 дисков в массиве.... что полный ахуй, заменять надо пулей
    2. Отказ от FibreChanell и уход на 10GbE
    3. Обновление всей хранилки как таковой
    И вообще всю инфраструктуру перевожу на 10GbE
  16. Deron Old school Пользователи

    Сообщения:
    1.123
    Лайки:
    533
    Пол:
    Мужской
    Репутация:
    4
    Нет предела, извращениям. :D
    Возникает только один вопрос: а нафига?

    Сколько раз говорили "старики", да и сам не раз убеждался. Чем проще система - тем выше надежность.
    Удачи :)
    Mr.Fleks и apfilipp нравится это.
Черновик сохранён Черновик удалён
Similar Threads
  1. Supreme
    Ответов:
    0
    Просмотров:
    3.402
  2. Flein
    Ответов:
    6
    Просмотров:
    1.666
  3. LeoMessi
    Ответов:
    1
    Просмотров:
    1.197
  4. Deron
    Ответов:
    5
    Просмотров:
    1.567
  5. tonycraft89
    Ответов:
    2
    Просмотров:
    1.349
Загрузка...

Поделиться этой страницей