como posso escrever arbitrariamente em um armazenamento de disco / bloco e verificar como foi a escrita?

0

Eu quero monitorar um dispositivo de armazenamento em bloco conectado a um servidor linux virtual e, como um teste preliminar, apenas para entender como isso funciona, minha ideia é

  1. Escreva uma quantidade arbitrária de memória (na ordem de KB) no bloco
  2. Confirme se a gravação foi bem-sucedida (o bloco está acessível)
  3. Confirme se a quantidade de memória gravada estava correta
  4. Exclua o bloco de memória
  5. Confirme se a quantia excluída liberou a quantidade de espaço especificada

Como escrevo especificamente para os endereços de memória na unidade de armazenamento em bloco? Eu sinto que posso fazer isso com C ou python. Eu posso ver que a unidade existe em /dev/vdc e /sys/block/vdc , mas não sei exatamente como monitorá-la ou se minha ideia acima é um bom caminho.

CentOS6 / 7

    
por frei 12.04.2017 / 10:45

1 resposta

1

Você pode escrever e ler blocos de memória com dd :

dd if=/dev/zero of=/dev/vdc bs=512 count=2 seek=123

escreve 2 blocos de 512 bytes nos blocos 123 e 124 em /dev/vdc usando zeros como entrada. Você pode usar qualquer coisa como entrada: /dev/urandom , algum processo que produz um padrão de bits, ...

Você pode lê-las novamente com dd e, por exemplo, exibi-los em hexadecimal:

dd if=/dev/vdc bs=512 count=1 skip=123 | hexdump -C

Você deve ver algo como

00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200

porque hexdump mescla linhas idênticas.

Mais detalhes com man dd .

Você pode repensar seus requisitos para ler e escrever "blocos da memória", não é tão fácil reservar e acessar a memória a partir da linha de comando.

Se você quiser fazer isso em C ou Python, pergunte no stackoverflow , não aqui.

    
por 12.04.2017 / 13:04