De man 8 blockdev
:
O utilitário
blockdev
permite chamar ioctls de dispositivos de bloco a partir da linha de comando.
Minha dúvida é sobre as seguintes opções:
--getfra
Obtenha leitura antecipada do sistema de arquivos em setores de 512 bytes.
--getra
Imprima readahead (em setores de 512 bytes).
--setfra sectors
Defina o readahead do sistema de arquivos (o mesmo que--setra
nos kernels 2.6).
--setra sectors
Defina readahead (em setores de 512 bytes).
Acho que sei o que é readahead em geral. O que me confunde é o "readahead do sistema de arquivos".
Por que existem duas opções separadas: “filesystem readahead” e “readahead”? Como eles diferem?
O "sistema de arquivos readahead" tem algo a ver com sistemas de arquivos? O que? E se sim , então qual é o problema em deixar
blockdev
gerenciar isso?Quero dizer,
blockdev
funciona com dispositivos de bloco (certo?), dispositivos de bloco e sistemas de arquivos são diferentes níveis de abstração (certo?) e ainda valorizamos "fazer uma coisa e fazê-la bem" ( certo? ). É por isso queblockdev
lidar com "alguma coisa no sistema de arquivos" é surpreendente para mim.
Os dois estão aí por razões históricas; eles são equivalentes há cerca de vinte anos no IIRC. Não me lembro qual era a distinção.
blockdev
faz uma coisa (conforme mencionado em sua página de manual, citada na pergunta): fornece acesso para bloquear dispositivosioctl
. Get/set (sistema de arquivos) read-ahead são quatro dispositivos de blocoioctl
, e é por isso queblockdev
possui opções para eles.