ZFS. Расширить дисковое пространство пула: различия между версиями

Материал из Wiki
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
=== Задача ===
== Задача ==
Добавим виртуальное устройство VDEV (MIRROR, RAIDZ1, RAIDZ2) в уже созданный пул RAIDZ1<blockquote>РАСШИРИТЬ ПУЛ, ДОБАВИВ ОТДЕЛЬНЫЙ ДИСК В УЖЕ СОЗДАННОЕ ВИРТУАЛЬНОЕ УСТРОЙСТВО (НАПРИМЕР, В MIRROR ИЛИ В RAIDZ1), НЕЛЬЗЯ!


МОЖНО ЛИШЬ ДОБАВИТЬ В ТЕКУЩИЙ ПУЛ АНАЛОГИЧНОЕ ВИРТУАЛЬНОЕ УСТРОЙСТВО ТОМУ, КОТОРОЕ УЖЕ РАБОТАЕТ В ПУЛЕ.
Добавим виртуальное устройство VDEV (MIRROR, RAIDZ1, RAIDZ2) в уже созданный пул RAIDZ1<blockquote>Расширить пул, добавив отдельный диск в уже созданное виртуальное устройство (например, в '''mirror''' или в '''raidz1'''), нельзя!


НАПРИМЕР, ЕСЛИ ОРИГИНАЛЬНЫЙ ПУЛ СОБРАН НА ОСНОВЕ MIRROR, ТО И ДОБАВИТЬ В НЕГО МОЖНО ТОЛЬКО VDEV MIRROR ИЗ ДИСКОВ АНАЛОГИЧНОГО ОБЪЕМА</blockquote>Имеется пул pool01 на основе виртуального устройства типа raidz1
Можно лишь добавить в текущий пул аналогичное виртуальное устройство тому, которое уже работает в пуле.
zpool status
<blockquote>  pool: pool01


state: ONLINE
Например, если оригинальный пул собран на основе '''mirror''', то и добавить в него можно только '''vdev''' '''mirror''' из дисков аналогичного объема</blockquote>Имеется пул pool01 на основе виртуального устройства типа raidz1


  scan: none requested
<code>zpool status</code>
  pool: pool01
state: ONLINE
  scan: none requested
config:
       NAME        STATE     READ WRITE CKSUM
       pool01      ONLINE       0     0     0
         raidz1-0  ONLINE       0     0     0
           gpt/d1  ONLINE       0     0     0
           gpt/d2  ONLINE       0     0     0
           gpt/d3  ONLINE       0     0     0
           


config:
Необходимо расширить дисковое пространство
 
       NAME        STATE     READ WRITE CKSUM
 
       pool01      ONLINE       0     0     0
 
         raidz1-0  ONLINE       0     0     0


           gpt/d1  ONLINE       0     0     0
== Отформатируем новые диски аналогичного объема с gpt метками ==
<code>gpart create -s gpt ada3</code>


           gpt/d2  ONLINE       0     0     0
<code>gpart create -s gpt ada4</code>


           gpt/d3  ONLINE       0     0     0</blockquote>           
<code>gpart create -s gpt ada5</code>


Необходимо расширить дисковое пространство
<code>gpart add -t freebsd-zfs -l d4 ada3</code>


=== Отформатируем новые диски аналогичного объема с gpt метками ===
<code>gpart add -t freebsd-zfs -l d5 ada4</code>
gpart create -s gpt ada3


gpart create -s gpt ada4
<code>gpart add -t freebsd-zfs -l d6 ada5</code>


gpart create -s gpt ada5
gpart add -t freebsd-zfs -l d4 ada3
gpart add -t freebsd-zfs -l d5 ada4
gpart add -t freebsd-zfs -l d6 ada5




При ошибке "gpart: geom 'ada0': File exists" делаем:
При ошибке "gpart: geom 'ada0': File exists" делаем:
gpart delete -i 1 ada3


gpart destroy ada3
<code>gpart delete -i 1 ada3</code>


=== Соберем такое же vdev (raidz1 из 3-х дисков), как и в существующем в пуле устройстве, и добавим его в пул ===
<code>gpart destroy ada3</code>
<blockquote>!!!ВНИМАНИЕ!!!


КАК ТОЛЬКО НОВОЕ VDEV БУДЕТ ДОБАВЛЕНО К СУЩЕСТВУЮЩЕМУ ПУЛУ И ОБЪЕМ ПУЛА БУДЕТ УВЕЛИЧЕН,
== Соберем такое же vdev (raidz1 из 3-х дисков), как и в существующем в пуле устройстве, и добавим его в пул ==
<blockquote>!!! ВНИМАНИЕ !!!


НЕ БУДЕТ СПОСОБА УДАЛИТЬ ЭТОТ ИЛИ ОРИГИНАЛЬНЫЙ VDEV ИЗ ПУЛА.
Как только новое '''vdev''' будет добавлено к существующему пулу и объем пула будет увеличен, не будет способа удалить этот или оригинальный '''vdev''' из пула.


ТЕПЕРЬ НОВЫЙ VDEV - ЧАСТЬ ПУЛА, И ДАЛЕЕ ОБЪЕМ ПУЛА МОЖНО ТОЛЬКО УВЕЛИЧИТЬ НОВЫМ VDEV!
Теперь новый '''vdev''' - часть пула, и далее объем пула можно только увеличить новым '''vdev'''!


ЕДИНСТВЕННЫЙ СПОСОБ УМЕНЬШИТЬ ОБЪЕМ ТЕКУЩЕГО ПУЛА - ЭТО СДЕЛАТЬ РЕЗЕРВНУЮ КОПИЮ ДАННЫХ ПУЛА,
Единственный способ уменьшить объем текущего пула - это сделать резервную копию данных пула, уничтожить текущий пул и собрать новый!</blockquote><code>zpool add pool01 raidz /dev/gpt/d4 /dev/gpt/d5 /dev/gpt/d6</code>


УНИЧТОЖИТЬ ТЕКУЩИЙ ПУЛ И СОБРАТЬ НОВЫЙ!</blockquote>
zpool add pool01 raidz /dev/gpt/d4 /dev/gpt/d5 /dev/gpt/d6
Объем пула увеличен в 2 раза
Объем пула увеличен в 2 раза
zpool status
<blockquote>  pool: pool01
state: ONLINE
  scan: none requested
config:
       NAME        STATE     READ WRITE CKSUM
       pool01      ONLINE       0     0     0
         raidz1-0  ONLINE       0     0     0
           gpt/d1  ONLINE       0     0     0
           gpt/d2  ONLINE       0     0     0
           gpt/d3  ONLINE       0     0     0
         raidz1-1  ONLINE       0     0     0
           gpt/d4  ONLINE       0     0     0
           gpt/d5  ONLINE       0     0     0
           gpt/d6  ONLINE       0     0     0</blockquote>           
df -h
<blockquote>Filesystem    Size    Used   Avail Capacity  Mounted on
...


pool01        3.5G    144K    3.5G     0%    /mnt/pool01
<code>zpool status</code>
  pool: pool01
state: ONLINE
  scan: none requested
config:
       NAME        STATE     READ WRITE CKSUM
       pool01      ONLINE       0     0     0
         raidz1-0  ONLINE       0     0     0
           gpt/d1  ONLINE       0     0     0
           gpt/d2  ONLINE       0     0     0
           gpt/d3  ONLINE       0     0     0
         raidz1-1  ONLINE       0     0     0
           gpt/d4  ONLINE       0     0     0
           gpt/d5  ONLINE       0     0     0
           gpt/d6  ONLINE       0     0     0
           


...</blockquote>
<code>df -h</code>
Filesystem    Size    Used   Avail Capacity  Mounted on
...
pool01        3.5G    144K    3.5G     0%    /mnt/pool01
...
[[Категория:ZFS]]
[[Категория:ZFS]]
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__

Версия 22:30, 1 марта 2022

Задача

Добавим виртуальное устройство VDEV (MIRROR, RAIDZ1, RAIDZ2) в уже созданный пул RAIDZ1

Расширить пул, добавив отдельный диск в уже созданное виртуальное устройство (например, в mirror или в raidz1), нельзя!

Можно лишь добавить в текущий пул аналогичное виртуальное устройство тому, которое уже работает в пуле.

Например, если оригинальный пул собран на основе mirror, то и добавить в него можно только vdev mirror из дисков аналогичного объема

Имеется пул pool01 на основе виртуального устройства типа raidz1

zpool status

  pool: pool01
state: ONLINE
  scan: none requested
config:
       NAME        STATE     READ WRITE CKSUM
       pool01      ONLINE       0     0     0
         raidz1-0  ONLINE       0     0     0
           gpt/d1  ONLINE       0     0     0
           gpt/d2  ONLINE       0     0     0
           gpt/d3  ONLINE       0     0     0

           

Необходимо расширить дисковое пространство

Отформатируем новые диски аналогичного объема с gpt метками

gpart create -s gpt ada3

gpart create -s gpt ada4

gpart create -s gpt ada5

gpart add -t freebsd-zfs -l d4 ada3

gpart add -t freebsd-zfs -l d5 ada4

gpart add -t freebsd-zfs -l d6 ada5


При ошибке "gpart: geom 'ada0': File exists" делаем:

gpart delete -i 1 ada3

gpart destroy ada3

Соберем такое же vdev (raidz1 из 3-х дисков), как и в существующем в пуле устройстве, и добавим его в пул

!!! ВНИМАНИЕ !!!

Как только новое vdev будет добавлено к существующему пулу и объем пула будет увеличен, не будет способа удалить этот или оригинальный vdev из пула.

Теперь новый vdev - часть пула, и далее объем пула можно только увеличить новым vdev!

Единственный способ уменьшить объем текущего пула - это сделать резервную копию данных пула, уничтожить текущий пул и собрать новый!

zpool add pool01 raidz /dev/gpt/d4 /dev/gpt/d5 /dev/gpt/d6

Объем пула увеличен в 2 раза

zpool status

  pool: pool01
state: ONLINE
  scan: none requested
config:
       NAME        STATE     READ WRITE CKSUM
       pool01      ONLINE       0     0     0
         raidz1-0  ONLINE       0     0     0
           gpt/d1  ONLINE       0     0     0
           gpt/d2  ONLINE       0     0     0
           gpt/d3  ONLINE       0     0     0
         raidz1-1  ONLINE       0     0     0
           gpt/d4  ONLINE       0     0     0
           gpt/d5  ONLINE       0     0     0
           gpt/d6  ONLINE       0     0     0

           

df -h

Filesystem    Size    Used   Avail Capacity  Mounted on
...
pool01        3.5G    144K    3.5G     0%    /mnt/pool01
...