У меня есть 6 физических дисков в RAID-Z2, которые я намерен по очереди преобразовать в устройства dm-crypt.
Мой процесс был примерно таким:
dd if=/dev/zero of=/dev/sdf
/etc/crypttab.d/crypt-1.key
cryptsetup luksFormat /dev/sdf
crypt-1 <raw-disk-uuid> /etc/crypttab.d/crypt-1.key luks
к /etc/crypttab
cryptsetup luksOpen /dev/sdf crypt-1
zfs replace my_pool <raw-disk-uuid> /dev/mapper/crypt-1
После завершения переноса данных (который работал нормально) я перезагрузил компьютер, чтобы проверить настройку, прежде чем переходить к другим дискам. Однако я обнаружил, что ZFS с меткой crypt-1
как UNAVAIL.
ls /dev/mapper
проверил, что dm-crypt правильно активировал контейнер LUKS. Бег zpool online my_pool crypt-1
заставляет ZFS начать перенастройку, но затем завершает и возобновляет нормальную работу в течение нескольких секунд.
Я предполагаю, что устройство dm-crypt просто не загружается, когда ZFS впервые пытается получить доступ my_pool
? Это вопрос порядка загрузки или мне нужно использовать другой идентификатор для устройства LUKS в /etc/crypttab
? Как убедиться, что ZFS видит эти устройства LUKS при перезагрузке?
Это systemd
box (Arch), если это важно.
Спасибо!
РЕДАКТИРОВАТЬ 1:
При создании cryptsetup я использовал идентификаторы SCSI (например, /dev/sdf
) для инициализации устройства с помощью LUKS. Однако в /etc/crypttab
Я указываю устройства через UUID базового физического диска. Это cryptsetup
Утилита чувствительна к тому, как вы определяете цели? Другими словами, нужно ли мне переделывать cryptsetup
и передать ему UUID диска вместо имени SCSI?
РЕДАКТИРОВАТЬ 2:
Я вижу следующее ls -alsvh /dev/disk/by-id
:
0 lrwxrwxrwx 1 root root 10 Jul 8 08:18 dm-uuid-CRYPT-LUKS1-6bed03ceaafe4539a375536d11309ff0-locker-1 -> ../../dm-0
Насколько я знаю, если это в /dev/disk/by-id
это - по определению? - не подлежит изменению (даже при перезагрузках). Я заменю определение dm-crypt-name locker-1
в моем zpool с id-именем /dev/disk/by-id/dm-uuid-CRYPT-LUKS1-6bed03ceaafe4539a375536d11309ff0-locker-1
и доложить. Тот же диск, тот же контейнер LUKS, только другой способ обращения к нему.
РЕДАКТИРОВАТЬ 3:
Мое предложение из редактирования №2 выше не сработало. Пришлось протереть диск и зановоcryptsetup
устройство, потому что ZFS не позволяет мне заменить устройство на себя. После завершения переназначения я перезагрузился и zpool status
является DEGRADED
и устройство dm-uuid-CRYPT-LUKS1-71e12fa7dc034d919e800ba89aec3b17-locker-1
является UNAVAIL
.
Стоит отметить, что locker-1
делает появляться в ls /dev/disk/by-id
так же как lsblk
, поэтому он загружается правильно. Я могу проверить это, запустив:
zpool online inground dm-uuid-CRYPT-LUKS1-71e12fa7dc034d919e800ba89aec3b17-locker-1
Который выходит чисто и возвращает устройство обратно в бассейн.
Возможно, это связано с порядком загрузки разных модулей при загрузке? Может быть, активация устройств dm-crypt выполняется таким образом, что ZFS начинает импортировать пулы до того, как контейнер LUKS будет правильно открыт?
Вы можете попытаться экспортировать свой пул, а затем связать узлы устройств, составляющих вызовы, например, в / dev / vdevs и запустите
zpool import -d /dev/vdevs poolname
Если vdev найден таким образом, то в качестве временного решения вы можете создать символическую ссылку перед импортом zpool в процессе загрузки (возможно, через udev или скрипт).