ディスク/ブロック ストレージに任意に書き込み、書き込みがどのように行われたかを確認するにはどうすればよいですか?

ディスク/ブロック ストレージに任意に書き込み、書き込みがどのように行われたかを確認するにはどうすればよいですか?

私は仮想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

ゼロを入力として使用して、512 バイトの 2 つのブロックをブロック 123 と 124 に書き込みます。入力には、ビット パターンを生成するプロセスなど、/dev/vdc何でも使用できます。/dev/urandom

を使用すると、それらを再度読み戻すことができdd、たとえば 16 進数で表示することができます。

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でやりたい場合は、スタックオーバーフロー、ここではありません。

関連情報