Quiero monitorear un dispositivo de almacenamiento en bloque conectado a un servidor Linux virtual y, como prueba preliminar, solo para entender cómo funciona esto, mi idea es
- Escriba una cantidad arbitraria de memoria (del orden de KB) en el bloque
- Confirme que la escritura fue exitosa (el bloque es accesible)
- Confirmar que la cantidad de memoria escrita fue correcta
- Eliminar el bloque de memoria.
- Confirme que la cantidad eliminada liberó la cantidad de espacio especificada
¿Cómo escribo específicamente en las direcciones de memoria en la unidad de almacenamiento en bloque? Siento que puedo hacerlo con C o Python. Puedo ver que la unidad existe /dev/vdc
pero /sys/block/vdc
no estoy seguro de cómo monitorearla exactamente o si mi idea anterior es una buena manera.
CentOS6/7
Respuesta1
Puedes escribir y leer bloques de memoria con dd
:
dd if=/dev/zero of=/dev/vdc bs=512 count=2 seek=123
escribe 2 bloques de 512 bytes en los bloques 123 y 124 /dev/vdc
utilizando ceros como entrada. Puede utilizar cualquier cosa como entrada: /dev/urandom
algún proceso que produzca un patrón de bits, ...
Puede volver a leerlos con dd
y, por ejemplo, mostrarlos en hexadecimal:
dd if=/dev/vdc bs=512 count=1 skip=123 | hexdump -C
Deberías ver algo como
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
porque hexdump
fusiona líneas idénticas.
Más detalles con man dd
.
Puede reconsiderar sus requisitos para leer y escribir "bloques de la memoria", no es tan fácil reservar y acceder a la memoria desde la línea de comandos.
Si quieres hacerlo en C o Python, por favor pregunta endesbordamiento de pila, aqui no.