acesso não-root aos blocos físicos ocupados por um arquivo

2

ioctl() e FIBMAP podem ser usados para determinar os blocos físicos ocupados por um arquivo, dados os blocos lógicos obtidos via stat() ; no entanto, o acesso root é necessário. Por que o acesso root é necessário para a verificação da localização do disco de um arquivo, e existem mecanismos que não requerem raiz para obter as mesmas informações? Para o caso de uso que motiva essa questão, os arquivos são pequenos (cerca de 1 bloco em média), portanto, o conhecimento da localização física do primeiro bloco seria suficiente (blocos indiretos certamente são desnecessários). Na ordem de 100.000 esses arquivos devem ser acessados em curto prazo (o mais rápido possível), e eu gostaria de pré-classificar com base na localização do disco antes da entrega na fila do agendador de E / S. A classificação por inode é uma possibilidade que não requer privilégios de root, mas o grau de correspondência entre o número de inode e a localização do disco é probabilístico, implicando variação de desempenho com a força dessa correspondência.

    
por user001 02.09.2018 / 11:54

0 respostas