Я использую Ubuntu 20.04 LTS (ядро 5.4.0-81-generic
) из PXE, и я хочу добавить локальный кеш. Поскольку я не хочу иметь раздел на всех своих устройствах для кэширования, я хочу использовать для этой цели виртуальный диск.
Мне удалось включить опцию fsc
во время загрузки с помощью этого ответа.
Однако, когда я запускаю службу cachefilesd
, она завершается с ошибкой -95: операция не поддерживается.
Вероятно, это связано с тем, что tmpfs
не поддерживает user_xattr
, что необходимо.
Я читал здесь, что вы можете скомпилировать/исправить ядро, чтобы включить user_xattr
, хотя это представляет угрозу безопасности. Помимо того, что это кошмар обслуживания, я не хочу заходить так далеко и возиться с автоматизацией этого при каждом обновлении ядра.
Я прочитал здесь(немецкий) и этои ответ.
Это указывает на то, что вы можете создать tmpfs, затем создать петлевое устройство, отформатировать его в ext4, а затем запустить там ваш fs-cache.
Однако, поскольку я использую PXE, а точка монтирования NFS — /
, как мне сделать это во время загрузки, предпочтительно до запуска cachedfilesd.service
?
Мой загрузчик ( vesamenu.c32
)
# [...]
label ubuntunfs
menu label ^Ubuntu NFS
text help
Run ubuntu from Network File System.
endtext
kernel ubuntu/boot/vmlinuz
initrd ubuntu/boot/initrd.img
append root=/dev/nfs nfsroot=192.168.1.5:/srv/tftp/ubuntu,rw,fsc,relatime ip=dhcp rw
# [...]
Мой fstab
/proc /proc proc defaults 0 0
/sys /sys sysfs defaults 0 0
/dev/nfs / nfs defaults,relatime,fsc 1 1
# ramdisk for fs-cache for nfs
tmpfs /media/ramdisk tmpfs defaults,size=5% 0 0
none /tmp tmpfs defaults 0 0
none /var/run tmpfs defaults 0 0
none /var/lock tmpfs defaults 0 0
none /var/tmp tmpfs defaults 0 0
мой /etc/cachefilesd.conf
dir /media/ramdisk
tag mycache
brun 90%
bcull 70%
bstop 30%
frun 90%
fcull 70%
fstop 30%
culltable 14