Я намагаюся поставити пакетну OpenZFS на Ubuntu 16.04 Xenial.
Під час створення пулів я завжди посилаю накопичувачі за їхніми серіалами в /dev/disk/by-id/
(або /dev/disk/gpt
на FreeBSD) для стійкості. Приводи не завжди в одному порядку, /dev
коли машина перезавантажується, і якщо у вас є інші накопичувачі машини, пул може не встановитись належним чином.
Наприклад, працюючи zpool status
на полі 14.04, я отримую це:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HUA722020ALA330_[..] ONLINE 0 0 0
Але коли я створюю новий пул 16.04 із цим (скорочено):
zpool create pool raidz \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..]
Я розумію це zpool status
:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
sdf ONLINE 0 0 0
sde ONLINE 0 0 0
sdd ONLINE 0 0 0
sda ONLINE 0 0 0
Схоже, zpool слідував за посиланнями, а не посилаючись на них.
Чи є спосіб змусити zpool 16.04 дотримуватися моїх дискових посилань під час створення пулу? Або ж мій побоювання з приводу того, що тут робиться?
Оновлення: вирішення
Я знайшов потік для zfsonlinux на Github, який запропонував вирішити. Створіть спочатку свій zpool за допомогою /dev/sdX
пристроїв, а потім зробіть це:
$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN
Я все-таки вважаю за краще мати можливість це робити з початковим, zpool create
хоча це можливо.
zfs send
для копіювання своїх даних у нові пули. Насправді, для моєї скриньки mythtv нормально працює raid-z, де продуктивність не є критичною, якщо я не виконую одразу 6 чи 8 завдань перекодування. Перехід на дзеркальні пари було б дуже помітно в басейні, де /home
живе мій каталог.
zfs export
іzfs import -d
буде працювати все одно. BTW, якщо вам дійсно не потрібен кожен байт простору, використовуйте дві дзеркальні пари, а не raidz. Продуктивність raidz краща, ніж raid-5, але все ж набагато гірша за дзеркальні пари raid-10 або zfs. також простіше розширити пул, що складається з дзеркальних пар, просто додайте два диски одночасно ... з raidz, ви повинні замінити кожен з накопичувачів на більші диски, і лише коли ви замінили їх усі, ваш басейн має більше місця.