Quero monitorar um dispositivo de armazenamento em bloco conectado a um servidor Linux virtual e, como teste preliminar, só para entender como isso funciona, minha ideia é
- Escreva uma quantidade arbitrária de memória (na ordem de KB) no bloco
- Confirme se a gravação foi bem-sucedida (o bloco está acessível)
- Confirme se a quantidade de memória gravada estava correta
- Exclua o bloco de memória
- Confirme se a quantidade excluída liberou a quantidade de espaço especificada
Como escrevo especificamente nos endereços de memória da unidade de armazenamento em bloco? Sinto que posso fazer isso com C ou python. Posso ver que a unidade existe /dev/vdc
, mas /sys/block/vdc
não tenho certeza de como exatamente monitorá-la ou se minha ideia acima é uma boa maneira.
CentOS6/7
Responder1
Você pode escrever e ler blocos de memória com dd
:
dd if=/dev/zero of=/dev/vdc bs=512 count=2 seek=123
grava 2 blocos de 512 bytes nos blocos 123 e 124 /dev/vdc
usando zeros como entrada. Você pode usar qualquer coisa como entrada: /dev/urandom
, algum processo que produza um padrão de bits, ...
Você pode lê-los novamente com dd
e, por exemplo, exibi-los em hexadecimal:
dd if=/dev/vdc bs=512 count=1 skip=123 | hexdump -C
Você deveria 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 de memória", não é tão fácil reservar e acessar memória a partir da linha de comando.
Se você quiser fazer isso em C ou Python, pergunte emfluxo de pilha, aqui não.