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

Другие вопросы по тегам