LINUX.ORG.RU

История изменений

Исправление kianvl, (текущая версия) :

И вот результат тестирования.

Два одинаковых сервера, каждый с 12 дисками по 3ТБ, ОС Linux CentOS 8.4, zfs 2.1.0. На первом сервере пул собран - zpool create -o ashift=12 pool raidz sd[a-d] raidz sd[e-h] raidz sd[i-l] На втором собираем draid - zpool create -o ashift=12 pool draid:5d:12c sd[a-l] Настройки на пулах одинаковые - zfs set recordsize=64k compression=zstd-1 mountpoint=none readonly=on pool Первый сервер исходный, на нём тестовый раздел:

pool/test  compressratio  2.50x
pool/test  used           248G
pool/test  logicalused    503G

Качаем его с первого на второй с опцией -c и без неё - ssh server1 /usr/sbin/zfs send -c pool/test@b | /usr/sbin/zfs recv -s pool/testc и ssh server1 /usr/sbin/zfs send pool/test@b | /usr/sbin/zfs recv -s pool/test В обоих случаях получаем интересную картину:

pool/test  compressratio  1.82x
pool/test  used           390G
pool/test  logicalused    515G

Т.е. потери и в степени сжатия и в занятом объёме, да ещё дополнительно 12ГБ данных.

Если пересобрать на втором сервере пул так же как на первом, то при пересылке раздела (что с опцией -c что без неё) результат будет равен исходному. Т.е. ничего лишнего и сжатие нормальное. И да, опция -c действительно ускоряет пересылку раздела. В моём случае это примерно 2-2,5 раза. Таким образом видно, что вся причина в draid.

И ещё один камень в сторону draid. Рабочий бэкап сервер, для которого всё это и делалось. 16 дисков по 8ТБ. Собираем draid - zpool create -o ashift=12 pool draid:7d:16c sd[a-p] - получаем пул полезного объёма 93ТБ. Собираем аналог RAID-50 - zpool create -o ashift=12 pool raidz sd[a-h] raidz sd[i-p] - получаем пул на 98ТБ. Т.е. при использовании draid теряем ~5% полезного объёма.

Мой вывод. Для бэкап сервера, которого важен полезный объём пула, а не стабильность 24/7, draid не подходит.

Исправление kianvl, :

И вот результат тестирования.

Два одинаковых сервера, каждый с 12 дисками по 3ТБ, ОС Linux CentOS 8.4, zfs 2.1.0. На первом диске пул собран - zpool create -o ashift=12 pool raidz sd[a-d] raidz sd[e-h] raidz sd[i-l] На втором собираем draid - zpool create -o ashift=12 pool draid:5d:12c sd[a-l] Настройки на пулах одинаковые - zfs set recordsize=64k compression=zstd-1 mountpoint=none readonly=on pool Первый сервер исходный, на нём тестовый раздел:

pool/test  compressratio  2.50x
pool/test  used           248G
pool/test  logicalused    503G

Качаем его с первого на второй с опцией -c и без неё - ssh server1 /usr/sbin/zfs send -c pool/test@b | /usr/sbin/zfs recv -s pool/testc и ssh server1 /usr/sbin/zfs send pool/test@b | /usr/sbin/zfs recv -s pool/test В обоих случаях получаем интересную картину:

pool/test  compressratio  1.82x
pool/test  used           390G
pool/test  logicalused    515G

Т.е. потери и в степени сжатия и в занятом объёме, да ещё дополнительно 12ГБ данных.

Если пересобрать на втором сервере пул так же как на первом, то при пересылке раздела (что с опцией -c что без неё) результат будет равен исходному. Т.е. ничего лишнего и сжатие нормальное. И да, опция -c действительно ускоряет пересылку раздела. В моём случае это примерно 2-2,5 раза. Таким образом видно, что вся причина в draid.

И ещё один камень в сторону draid. Рабочий бэкап сервер, для которого всё это и делалось. 16 дисков по 8ТБ. Собираем draid - zpool create -o ashift=12 pool draid:7d:16c sd[a-p] - получаем пул полезного объёма 93ТБ. Собираем аналог RAID-50 - zpool create -o ashift=12 pool raidz sd[a-h] raidz sd[i-p] - получаем пул на 98ТБ. Т.е. при использовании draid теряем ~5% полезного объёма.

Мой вывод. Для бэкап сервера, которого важен полезный объём пула, а не стабильность 24/7, draid не подходит.

Исправление kianvl, :

И вот результат тестирования.

Два одинаковых сервера, каждый с 12 дисками по 3ТБ, ОС Linux CentOS 8.4, zfs 2.1.0. На первом диске пул собран - zpool create -o ashift=12 pool raidz sd[a-d] raidz sd[e-h] raidz sd[i-l] На втором собираем draid - zpool create -o ashift=12 pool draid:5d:12c sd[a-l] Настройки на пулах одинаковые - zfs set recordsize=64k compression=zstd-1 mountpoint=none readonly=on pool Первый сервер исходный, на нём тестовый раздел:

pool/test  compressratio  2.50x
pool/test  used           248G
pool/test  logicalused    503G

Качаем его с первого на второй с опцией -c и без неё - ssh server1 /usr/sbin/zfs send -c pool/test@b | /usr/sbin/zfs recv -s pool/testc и ssh server1 /usr/sbin/zfs send pool/test@b | /usr/sbin/zfs recv -s pool/test В обоих случаях получаем интересную картину:

pool/test  compressratio  1.82x
pool/test  used           390G
pool/test  logicalused    515G

Т.е. потери и в степени сжатия и в занятом объёме, да ещё дополнительно 12ГБ данных.

Если пересобрать на втором сервере пул так же как на первом, то при пересылке раздела (что с опцией -c что без неё) результат будет равен исходному. Т.е. ничего лишнего и сжатие нормальное. И да, опция -c действительно ускоряет пересылку раздела. В моём случае это примерно 2-2,5 раза. Таким образом видно, что вся причина в draid.

И ещё один камень в сторону draid. Рабочий бэкап сервер, для которого всё это и делалось. 16 дисков по 8ТБ. Собираем draid - zpool create -o ashift=12 pool draid:7d:16c sd[a-p] - получаем пул полезного объёма 93ТБ. Собираем аналог RAID-50 - zpool create -o ashift=12 pool raidz sd[a-h] raidz sd[i-p] - получаем пул на 98ТБ. Т.е. при использовании draid теряем ~5% полезного объёма.

Мой вывод. Для бэкап сервера, который не загружен 24/7, а лишь периодически обновляет снэпшоты, draid не подходит.

Исправление kianvl, :

И вот результат тестирования.

Два одинаковых сервера, каждый с 12 дисками по 3ТБ, ОС Linux CentOS 8.4, zfs 2.1.0. На первом диске пул собран - zpool create -o ashift=12 pool raidz sd[a-d] raidz sd[e-h] raidz sd[i-l] На втором собираем draid - zpool create -o ashift=12 pool draid:5d:12c sd[a-l] Настройки на пулах одинаковые - zfs set recordsize=64k compression=zstd-1 mountpoint=none readonly=on pool Первый сервер исходный, на нём тестовый раздел:

pool/test  compressratio         2.50x
pool/test  used                  248G
pool/test  logicalused           503G

Качаем его с первого на второй с опцией -c и без неё - ssh server1 /usr/sbin/zfs send -c pool/test@b | /usr/sbin/zfs recv -s pool/testc и ssh server1 /usr/sbin/zfs send pool/test@b | /usr/sbin/zfs recv -s pool/test В обоих случаях получаем интересную картину:

pool/test  compressratio         1.82x
pool/test  used                  390G
pool/test  logicalused           515G

Т.е. потери и в степени сжатия и в занятом объёме, да ещё дополнительно 12ГБ данных.

Если пересобрать на втором сервере пул так же как первом, то при пересылке раздела (что с опцией -c что без неё) результат будет равен исходному. Т.е. ничего лишнего и сжатие нормальное. И да, опция -c действительно ускоряет пересылку раздела. В моём случае это примерно 2-2,5 раза. Таким образом видно, что вся причина в draid.

И ещё один камень в сторону draid. Рабочий бэкап сервер, для которого всё это и делалось. 16 дисков по 8ТБ. Собираем draid - zpool create -o ashift=12 pool draid:7d:16c sd[a-p] - получаем пул полезного объёма 93ТБ. Собираем аналог RAID-50 - zpool create -o ashift=12 pool raidz sd[a-h] raidz sd[i-p] - получаем пул на 98ТБ. Т.е. при использовании draid теряем ~5% полезного объёма.

Мой вывод. Для бэкап сервера, который не загружен 24/7, а лишь периодически обновляет снэпшоты, draid не подходит.

Исходная версия kianvl, :

И вот результат тестирования.

Два одинаковых сервера, каждый с 12 дисками по 3ТБ, ОС Linux CentOS 8.4, zfs 2.1.0. На первом диске пул собран - zpool create -o ashift=12 pool raidz sda sdb sdc sdd raidz sde sdf sdg sdh raidz sdi sdj sdk sdl На втором собираем draid - zpool create -o ashift=12 pool draid:5d:12c sda sdb sdc sdd sde sdf sdg sdh sdi sdj sdk sdl Настройки на пулах одинаковые - 2021-07-27.00:47:24 zfs set recordsize=64k compression=zstd-1 mountpoint=none readonly=on pool Первый сервер исходный, на нём тестовый раздел:

pool/test  compressratio         2.50x
pool/test  used                  248G
pool/test  logicalused           503G

Качаем его с первого на второй с опцией -c и без неё - ssh server1 /usr/sbin/zfs send -c pool/test@b | /usr/sbin/zfs recv -s pool/testc и ssh server1 /usr/sbin/zfs send pool/test@b | /usr/sbin/zfs recv -s pool/test В обоих случаях получаем интересную картину:

pool/test  compressratio         1.82x
pool/test  used                  390G
pool/test  logicalused           515G

Т.е. потери и в степени сжатия и в занятом объёме, да ещё дополнительно 12ГБ данных.

Если пересобрать на втором сервере пул так же как первом, то при пересылке раздела (что с опцией -c что без неё) результат будет равен исходному. Т.е. ничего лишнего и сжатие нормальное. И да, опция -c действительно ускоряет пересылку раздела. В моём случае это примерно 2-2,5 раза. Таким образом видно, что вся причина в draid.

И ещё один камень в сторону draid. Рабочий бэкап сервер, для которого всё это и делалось. 16 дисков по 8ТБ. Собираем draid - zpool create -o ashift=12 pool draid:7d:16c sda sdb sdc sdd sde sdf sdg sdh sdi sdj sdk sdl sdm sdn sdo sdp - получаем пул полезного объёма 93ТБ. Собираем аналог RAID-50 - zpool create -o ashift=12 pool raidz sda sdb sdc sdd sde sdf sdg sdh raidz sdi sdj sdk sdl sdm sdn sdo sdp - получаем пул на 98ТБ. Т.е. при использовании draid теряем ~5% полезного объёма.

Мой вывод. Для бэкап сервера, который не загружен 24/7, а лишь периодически обновляет снэпшоты, draid не подходит.