ZFS - использовать файл как l2arc кеш
У меня есть сервер CentOS, который использует zfs для управления большим, медленным, подключенным к сети томом.
Мы много читаем из этого тома, поэтому я хотел бы оптимизировать показатели чтения.
Идея явно кэш L2ARC.
К сожалению, у меня есть только один SSD-диск, подключенный к этой машине, уже отформатированный с xfs, на котором находится /, и я не могу подключить больше (управляемая машина кем-то другим)
Мне было интересно, можно ли было создать файл на диске SSD и каким-то образом поместить L2ARC в этот файл.
Я думал о монтировании в петле диска, однако кажется, что монтирование петли поддерживает только устройства только для чтения.
Есть ли альтернатива?
$ dd if=/dev/zero of=/root/cache size...
$ mount -o rw,loop /root/cache /mnt/cache-file
mount: /dev/loop0 is write-protected, mounting read-only
mount: unknown filesystem type '(null)'
2 ответа
Да, вы можете использовать файл для L2ARC. Вам даже не нужно петлевое крепление: вы можете просто выдать zpool add tank cache <absolute_file_path>
Тем не менее, L2ARC полезен только в определенных обстоятельствах, поэтому не считается, что он улучшит вашу ситуацию.
Принятый в данный момент ответ , если его использовать наивно, приведет к ошибке;
$>touch /zfs.cache
$>zpool add poolname cache /zfs.cache
cannot add to 'poolname': device is less than the maximum size (64M)
Сначала необходимо зарезервировать файл:
truncate -s 256g /etc/zfs.cache
или используйте
zpool set cachefile=/zfscache/zpool.cache poolname