O FUSE suporta O_DIRECT / directI / O

0

Olá, Linux FUSE (Filesystem in Userspace) suporta O_DIRECT? porque eu uso o benchmark da benchmark para testar o fusível, mas ele sempre mostra erros quando uso o directio

A minha máquina é Ubuntu 4.4.0-38 x86_64 fio_version = 2,14 Abaixo está meu arquivo de configuração

[global]
ioengine=libaio
**direct=1**
time_based
runtime=60
ramp_time=30
size=64g
group_reporting

[S_100RW_1M_R]
rw=read
numjobs=1
iodepth=32
bs=1m
stonewall

[S_100RW_1M_W]
rw=write
numjobs=1
iodepth=32
bs=1m
stonewall

quando executo: sudo fio fio.cfg e pronto mostra o resultado de seq. leia sem seq. escrever. mostra abaixo:

fio: io_u error on file xxxxx : Invalid argument: write offset=0, buflen=1048576

Eu tentei todas as vezes e os resultados são os mesmos, mesmo eu mudei o dispositivo testado.

como isso aconteceu?

muito obrigado

    
por yayaya 12.10.2016 / 09:23

1 resposta

2

Sim, desde a versão 2.4 :

What is new in 2.4

...

  • Allow 'direct_io' and 'keep_cache' options to be set on a case-by-case basis on open.

Eu arriscaria uma das várias coisas que provavelmente estão acontecendo:

  1. Sua versão do fusível não é nova o suficiente.
  2. O sistema de arquivos subjacente real não suporta IO direto, e o fusível está simplesmente retornando um erro de passagem. (Isso supõe que o fusível passe a solicitação de E / S direta para o sistema de arquivos subjacente que realmente mantém os dados no disco em algum lugar.)
  3. Um bug em algum lugar no código do fusível. O IO direto no Linux pode ser muito particular / peculiar.
por 14.10.2016 / 22:36