我想監視連接到虛擬 Linux 伺服器的區塊儲存設備,作為初步測試,只是為了了解其工作原理,我的想法是
- 將任意數量的記憶體(KB數量級)寫入區塊
- 確認寫入成功(區塊可存取)
- 確認寫入的記憶體量正確
- 刪除記憶體區塊
- 確認刪除的數量釋放了指定的空間量
如何具體寫入區塊儲存單元中的記憶體位址?我覺得用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 來做,請詢問堆疊溢位, 不在這裡。