Как я монтирую циклическое устройство с zfs в fstab?
Вот то, как я создал его:
fallocate -l 150G /jdata/zfs_psql.disk
sudo losetup /dev/loop2 jdata/zfs_psql.disk
sudo zpool create -f -O atime=off -O compression=lz4 -O recordsize=128K zfsdisk /dev/loop2
затем я добавил следующую строку к fstab
/jdata/zfs_psql.disk /zfsdisk zfs loop 0 0
на котором mount -a
говорит
filesystem 'zfsdisk' cannot be mounted, unable to open the dataset
Как я должен сделать это?
В своем первом блоке кода вы создаете, а затем уничтожаете zpool. Попробуйте еще раз, кроме запуска команд
fallocate -l 150G /jdata/zfs_psql.disk
sudo losetup /dev/loop2 jdata/zfs_psql.disk
sudo zpool create -f -m legacy -O atime=off -O compression=lz4 -O recordsize=128K zfsdisk /dev/loop2
Вам нужно установить точку монтирования zpool на legacy, которая использовала fstab. Обычно Zfs пытается автоматически монтировать устройства во время загрузки, но поскольку вы используете файл вместо устройства, автоматическое монтирование не будет работать. Поэтому необходима точка монтирования legacy
и использование fstab
.
Теперь fstab
/jdata/zfs_psql.disk /zfsdisk zfs loop 0 0
С mount -a
должно работать, как вы ожидали. Тем не менее, это может привести к ошибке при запуске из-за порядка монтирования, так как вам необходимо полностью смонтировать базовую файловую систему перед файлом цикла. В этом случае вам нужно будет добавить опцию noauto с помощью loop.
/jdata/zfs_psql.disk /zfsdisk zfs loop,noauto 0 0