Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » TrueNAS / FreeNAS / NAS4Free / XigmaNAS и всё такое

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Итак приступим к созданию массива.
Давайте рассмотрим наиболее сложный вариант, когда имеющиеся у нас диски имеют различный объём. К примеру в наличии  один 80ГБ, один 120ГБ и два 160ГБ.  
Задача собрать отказоустойчивый массив с максимальным использованием суммарного объёма дисков.
Оптимальная формула использования общего пространства для отказоустойчивого массива рассчитывается по формуле «общий объём дисков, разделённый на количество дисков и умноженный на количество дисков минус один»  
<общий объём> / <количество дисков> х <(<количество дисков> -1)> = <объём защищённого пространства>
В нашем случае это (80 + 120 + 160 + 160) / 4 х (4 -1) = 360 GB. (3/4 от 520GB общего пространства)
Если мы создадим программный RAID-5, то получим объём полезного пространства равный (80+80+80+80)-80=240ГБ, т.к. RAID-5 при сборке будет ориентироваться на самый малый по объёму диск и отбросит «лишне пространство» на дисках большего объёма. Т.е. он будет видеть  4 х 80-ки из которых одна  уйдёт под обеспечение отказоустойчивости.  
Это составит используемое пространство на 120 гиг меньше оптимального.  Что нас естественно не устраивает.
Однако ZFS позволяет собирать массивы, в том числе единое поле из нескольких массивов, не только на основе физических устройств разного объёма, как RAID JBOD, но в отличии от JBOD ZFS может работать и с виртуальными устройствами. Чем мы и воспользуемся.  
Итак. У нас в наличии 4 диска разного обьёма 80, 120, 160, 160 ГБ.
Мы хотим использовать максимально доступное и при этом отказоустойчивое  пространство для хранения данных.
Для этого мы:
1.    Представим наши диски не как 4 физических диска разного объёма, а как 13 виртуальных устройств  по 40 GB каждое.
 
80   = 2 x 40
120 = 3 x 40
160 = 4 x 40
160 = 4 x 40
1    4
1    2    3
1    2    3    4
1    2    3    4
 
2.    Cоберём 4 отказоустойчивых RAID-z где:  
Первый RAID (1)     –  4 виртуальных устройства.  
Второй RAID  (2)     –  3  виртуальных устройства.
Третий RAID  (3)     –  3  виртуальных устройства.
Четвёртый RAID (4)     –  3  виртуальных устройства.
 
3.    После чего объединим их в единый массив равный 360GB.
Таким образом, мы получим оптимальное использование суммарного  пространства дисков.  
 
 
P.S. При этом обратите внимание, что при выходе из строя любого одного физического диска, базовые RAIDы перейдут в дегрейд, но при этом будут работать и информация не потеряется.  
Так же в той же недописанной статье есть метода замены диска в случае его выхода из строя/
Вот. Тут правда метериал для части по ЗАМЕНЕ аппаратного диска на виртуальные... но вобщем понятно

 
 Переводим в офлайн меняемый диск
    # zpool offline raid-z ada4
 
    # zpool status
      pool: raid-z
     state: DEGRADED
    status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
    action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
     scan: resilvered 103G in 3h10m with 0 errors on Wed Mar 13 04:33:55 2013
    config:
 
            NAME                      STATE     READ WRITE CKSUM
            raid-z                    DEGRADED     0     0     0
              raidz1-0                DEGRADED     0     0     0
                ada0s1                ONLINE       0     0     0
                ada1s1                ONLINE       0     0     0
                ada2                  ONLINE       0     0     0
                ada3                  ONLINE       0     0     0
                15202818205423533417 OFFLINE      0     0     0  was /dev/ada4
                ada5                  ONLINE       0     0     0
                ada6                  ONLINE       0     0     0
 
    errors: No known data errors
 
 
Затираем все данные о прошлом разбиении на диске
    # dd if=/dev/zero of=/dev/ada4 bs=512 count=3
    3+0 records in
    3+0 records out
    1536 bytes transferred in 0.000330 secs (4654950 bytes/sec)
 
Проверяем -------------
 
 
 
Переразбиваем диск заново создавая 2 слайса.  
В принципе сначала можно восстановить разбиение по умолчанию (fdisk -I ada4),  
а потом уже заниматся переразбиением,но это не обязательно.  
Можно сразу начать разбиение как нам нужно. fdisk отругается, но всё сам исправит.
    # fdisk -i ada4
    ******* Working on device /dev/ada4 *******
    parameters extracted from in-core disklabel are:
    cylinders=310101 heads=16 sectors/track=63 (1008 blks/cyl)
 
    Figures below won't work with BIOS for partitions not in cyl 1
    parameters to be used for BIOS calculations are:
    cylinders=310101 heads=16 sectors/track=63 (1008 blks/cyl)
 
    Do you want to change our idea of what BIOS thinks ? [n]
    fdisk: invalid fdisk partition table found
    Media sector size is 512
    Warning: BIOS sector numbering starts with sector 1
    Information from DOS bootblock is:
    The data for partition 1 is:
    sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
        start 63, size 312581745 (152627 Meg), flag 80 (active)
            beg: cyl 0/ head 1/ sector 1;
            end: cyl 852/ head 15/ sector 63
    Do you want to change it? [n] y
 
    The static data for the slice 1 has been reinitialized to:
    sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
        start 63, size 312581745 (152627 Meg), flag 80 (active)
            beg: cyl 0/ head 1/ sector 1;
            end: cyl 852/ head 15/ sector 63
    Supply a decimal value for "sysid (165=FreeBSD)" [165]
    Supply a decimal value for "start" [63]
    Supply a decimal value for "size" [312581745] 234441585
    Explicitly specify beg/end address ? [n]
    sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
        start 63, size 234441585 (114473 Meg), flag 80 (active)
            beg: cyl 0/ head 1/ sector 1;
        end: cyl 132/ head 15/ sector 63
    Are we happy with this entry? [n] y
    The data for partition 2 is:
    <UNUSED>
    Do you want to change it? [n] y
    Supply a decimal value for "sysid (165=FreeBSD)" [0] 165
    Supply a decimal value for "start" [0] 234441648
    Supply a decimal value for "size" [0] 78140160
    Explicitly specify beg/end address ? [n]
    sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
        start 234441648, size 78140160 (38154 Meg), flag 0
            beg: cyl 133/ head 0/ sector 1;
            end: cyl 852/ head 15/ sector 63
    Are we happy with this entry? [n] y
    The data for partition 3 is:
    <UNUSED>
    Do you want to change it? [n]
    The data for partition 4 is:
    <UNUSED>
    Do you want to change it? [n]
    Partition 1 is marked active
    Do you want to change the active partition? [n]
 
    We haven't changed the partition table yet.  This is your last chance.
    parameters extracted from in-core disklabel are:
    cylinders=310101 heads=16 sectors/track=63 (1008 blks/cyl)
 
    Figures below won't work with BIOS for partitions not in cyl 1
    parameters to be used for BIOS calculations are:
    cylinders=310101 heads=16 sectors/track=63 (1008 blks/cyl)
 
    Information from DOS bootblock is:
    1: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
        start 63, size 234441585 (114473 Meg), flag 80 (active)
            beg: cyl 0/ head 1/ sector 1;
            end: cyl 132/ head 15/ sector 63
    2: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
        start 234441648, size 78140160 (38154 Meg), flag 0
            beg: cyl 133/ head 0/ sector 1;
            end: cyl 852/ head 15/ sector 63
    3: <UNUSED>
    4: <UNUSED>
    Should we write new partition table? [n] y
    fdisk: Class not found
 
 
Проверяем разбиение  
    # fdisk -s ada4
    /dev/ada4: 310101 cyl 16 hd 63 sec
    Part        Start        Size Type Flags
       1:          63   234441585 0xa5 0x80
       2:   234441648    78140160 0xa5 0x00
 
Проверяем наличие новых устройств
    # ls /dev
    ...
    ada4s1          
    ada4s2  
    ..
Либо  
    # ls /dev | grep ada4
    ada4
    ada4s1
    ada4s2
 
Заменяем выведенный в офлайн диск ada4 на первый слайс переразбитого диска ada4s1.
    # zpool replace raid-z ada4 ada4s1
 
    # zpool status
      pool: raid-z
     state: DEGRADED
    status: One or more devices is currently being resilvered.  The pool will
            continue to function, possibly in a degraded state.
    action: Wait for the resilver to complete.
     scan: resilver in progress since Wed Mar 13 11:38:28 2013
        119M scanned out of 725G at 9.89M/s, 20h51m to go
        16.2M resilvered, 0.02% done
    config:
 
            NAME                        STATE     READ WRITE CKSUM
            raid-z                      DEGRADED     0     0     0
              raidz1-0                  DEGRADED     0     0     0
                ada0s1                  ONLINE       0     0     0
                ada1s1                  ONLINE       0     0     0
                ada2                    ONLINE       0     0     0
                ada3                    ONLINE       0     0     0
                replacing-4             OFFLINE      0     0     0
                  15202818205423533417  OFFLINE      0     0     0  was /dev/ada4
                  ada4s1                ONLINE       0     0     0  (resilvering)
                ada5                    ONLINE       0     0     0
                ada6                    ONLINE       0     0     0
 
    errors: No known data errors
 
 
Удаляем диск ada4 из массива по устройству или по его ID
    # zpool detach raid-z ada4
или
    # zpool detach raid-z 15202818205423533417
 
    # zpool status
      pool: raid-z
     state: ONLINE
    status: One or more devices is currently being resilvered.  The pool will
            continue to function, possibly in a degraded state.
    action: Wait for the resilver to complete.
     scan: resilver in progress since Wed Mar 13 11:38:28 2013
        6.74G scanned out of 725G at 65.7M/s, 3h6m to go
        983M resilvered, 0.93% done
    config:
 
            NAME        STATE     READ WRITE CKSUM
            raid-z      ONLINE       0     0     0
              raidz1-0  ONLINE       0     0     0
                ada0s1  ONLINE       0     0     0
                ada1s1  ONLINE       0     0     0
                ada2    ONLINE       0     0     0
                 ada3    ONLINE       0     0     0
                 ada4s1  ONLINE       0     0     0  (resilvering)
                ada5    ONLINE       0     0     0
                ada6    ONLINE       0     0     0
    errors: No known data errors
 
Ждём пока массив восстановится.  
 
    # zpool status
      pool: raid-z
     state: ONLINE
     scan: resilvered 103G in 3h8m with 0 errors on Wed Mar 13 14:46:34 2013
    config:
 
            NAME        STATE     READ WRITE CKSUM
            raid-z      ONLINE       0     0     0
              raidz1-0  ONLINE       0     0     0
                ada0s1  ONLINE       0     0     0
                ada1s1  ONLINE       0     0     0
                ada2    ONLINE       0     0     0
                ada3    ONLINE       0     0     0
                ada4s1  ONLINE       0     0     0
                ada5s1  ONLINE       0     0     0
                ada6    ONLINE       0     0     0
 
    errors: No known data errors
 
 
Теперь добавляем в массив RAID-Z вторые слайсы на дисках.
ВНИМАНИЕ! Данная операция не обратима!  
Вы не сможете удалить диски из пула RAID-Z. Это ограничение ZFS, а не прихоть.  
 
    # zpool add raid-z raidz ada0s2 ada1s2 ada4s2 ada5s2
 
Смотрим что получилось
 
    # zpool status
      pool: raid-z
     state: ONLINE
    status: One or more devices is currently being resilvered.  The pool will
            continue to function, possibly in a degraded state.
    action: Wait for the resilver to complete.
     scan: resilver in progress since Wed Mar 13 14:52:14 2013
        334G scanned out of 725G at 61.7M/s, 1h48m to go
        47.5G resilvered, 46.06% done
    config:
 
            NAME        STATE     READ WRITE CKSUM
            raid-z      ONLINE       0     0     0
              raidz1-0  ONLINE       0     0     0
                ada0s1  ONLINE       0     0     0
                ada1s1  ONLINE       0     0     0
                ada2    ONLINE       0     0     0
                ada3    ONLINE       0     0     0
                 ada4s1  ONLINE       0     0     0
                ada5s1  ONLINE       0     0     0  (resilvering)
                ada6    ONLINE       0     0     0
              raidz1-1  ONLINE       0     0     0
                ada0s2  ONLINE       0     0     0
                ada1s2  ONLINE       0     0     0
                ada4s2  ONLINE       0     0     0
                ada5s2  ONLINE       0     0     0
 
    errors: No known data errors
 
Смотрим текущий обьём пула  
    # zpool list
    NAME     SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
    raid-z   929G   725G   204G    78%  1.00x  ONLINE  -
Как видите мы расширили пространство нашего пула хранения данных на 114462 MB.  
Что может пригодится.
 
Теперь осталось навести порядок в Web интерфейсе, где в результате наших действий мы имеем не соответствие действительности с отображаемыми характеристиками.
Оно и так работать будет, но давайте всё же синхронизируем.       
 
 
 
Теперь синронизаруем текущее состояние дисков в RAID(то что прописано в конфигураторе Web интерфейса) с реальным.  
 
Диски|ZFS (Zettabyte File System)|Конфигурация|Синхронизация
Для синхронизации поставьте галочку  
"Перезаписывать конфигурацию дисков [] Перезаписывать настройки уже сконфигурированных дисков (затрагивает только значение файловой системы)".
 
 
если будешь делать синхронизацию (с текщим состоянием дисков), то там галочка есть - перетереть текущий конфиг дисков (или что то в этом роде) - если не ошибаюсь - пометив ее - в конфиге нас4фри диски перепишутся на текущие реальные....
 
 
 

Всего записей: 13033 | Зарегистр. 15-03-2006 | Отправлено: 19:48 29-08-2013 | Исправлено: gryu, 21:11 29-08-2013
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » UNIX » TrueNAS / FreeNAS / NAS4Free / XigmaNAS и всё такое


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru