我如何任意写入磁盘/块存储并检查写入情况?

我如何任意写入磁盘/块存储并检查写入情况?

我想监视连接到虚拟 Linux 服务器的块存储设备,作为初步测试,只是为了了解其工作原理,我的想法是

  1. 将任意数量的内存(KB数量级)写入块
  2. 确认写入成功(块可访问)
  3. 确认写入的内存量正确
  4. 删除内存块
  5. 确认删除的数量释放了指定的空间量

如何具体写入块存储单元中的内存地址?我觉得用C或者python都可以做到。我可以看到该单元存在于 和 中/dev/vdc/sys/block/vdc但我不确定如何准确地监视它,或者我上面的想法是否是一个好方法。

CentOS6/7

答案1

您可以使用以下命令写入和读取内存块dd

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

/dev/vdc使用零作为输入将 2 个 512 字节的块写入块 123 和 124 。您可以使用任何内容作为输入:/dev/urandom,一些产生位模式的过程,...

您可以使用 再次读回它们dd,例如以十六进制显示它们:

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

你应该看到类似的东西

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

因为hexdump合并相同的行。

更多详细信息,请参阅man dd.

您可能会重新考虑读取和写入“内存块”的要求,从命令行保留和访问内存并不那么容易。

如果你想用 C 或 Python 来做,请询问堆栈溢出, 不在这里。

相关内容