Я запускаю CentOS7 на виртуальном экземпляре Softlayer. Для экземпляра доступно блочное хранилище через multipath / iscsi
Я успешно смонтировал это блочное устройство как XFS. Я решил попробовать ZFS. Когда я вручную запускаю команды для «монтирования» этого тома ZFS, он работает нормально.
zpool import -f zfs-data
У меня есть две проблемы с ZFS на CentOS7.
Я подозреваю, что решение для (a) также может исправить (b).
Давай посмотрим на (а) первый.
На странице github есть обсуждение для zfsonlinux CentOs 7. Не монтировать / импортировать пул после перезагрузки
Похоже, что файл / etc / hostid не создается, когда ZFS устанавливается через yum. Итак, как предлагается на этой странице, я запускаю следующую команду, чтобы создать его.
dd if=/dev/urandom of=/etc/hostid bs=4 count=1
Затем мне внезапно пришло в голову, что он не может монтироваться автоматически, потому что когда машина загружается, загружается ZFS. перед материал iSCSI.
из /var/log/boot.log - первый столбец - это номер строки
81 Starting Import ZFS pools by cache file...
147 Starting Open-iSCSI...
Как изменить порядок загрузки?
(б) зависает при перезагрузке
Если я импортирую пул и ничего не напишу в него, я могу перезагрузиться нормально. Однако, как только происходит обмен данными при монтировании, журнал перезагрузки / выключения содержит эти строки.
Stopping Import network configuration from initramfs...
[ 550.096199] end_request: I/O error, dev dm-0, sector 5514152
^^ повторяется десять раз с разными числами.
WARNING: Pool 'zfs-data' has encountered an uncorrectable I/O failure and has been suspended
[...]
Unmounting /zfs-data...
[...]
A stop job is running for /zfs-data
Это никогда не заканчивается, и для возврата к экземпляру требуется ЖЕСТКАЯ перезагрузка.
Любое понимание будет оценено.
Хороший вопрос ... Я не уверен, что рекомендовал бы использовать ZFS таким образом, тем более, что блочные устройства должны присутствовать при загрузке. Однако помните, что с ZFS связано несколько служб.
zfs-import-cache.service # Import ZFS pools by cache file
zfs-mount.service # Mount ZFS filesystems
zfs-share.service # ZFS file system shares
zfs.target # ZFS startup target
Вы можете изменить время или зависимости в соответствии с отложенным монтированием iSCSI.
[Unit]
Description=Import ZFS pools by cache file
DefaultDependencies=no
Requires=systemd-udev-settle.service
After=systemd-udev-settle.service
After=cryptsetup.target
ConditionPathExists=/etc/zfs/zpool.cache
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/sbin/modprobe zfs
ExecStart=/sbin/zpool import -c /etc/zfs/zpool.cache -aN