Я запускаю CentOS7 на виртуальном экземпляре в Softlayer. Есть блочное устройство хранения, доступное для экземпляра через multipath / iscsi
. Я успешно смонтировал это блочное устройство как XFS. Я решил попробовать ZFS. Когда я вручную запускаю команды для «монтирования» этого тома ZFS, он работает нормально.
zpool import -f zfs-data
У меня есть две проблемы с ZFS на CentOS7.
Я подозреваю, что решение для (a) также может исправить (b).
Давайте сначала посмотрим на (a) .
Там это обсуждение на странице 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...
Как мне изменить порядок загрузки?
(b) зависает при перезагрузке
Если я импортирую пул и ничего не записываю в него, я могу перезагрузиться нормально. Однако, как только происходит обмен данными на монтировании, журнал перезагрузки / выключения содержит эти строки ..
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