Ich möchte ein Blockspeichergerät überwachen, das an einen virtuellen Linux-Server angeschlossen ist. Als vorläufigen Test, nur um zu verstehen, wie das funktioniert, ist meine Idee,
- Schreiben Sie eine beliebige Speichermenge (im KB-Bereich) in den Block
- Bestätigen Sie, dass der Schreibvorgang erfolgreich war (auf den Block kann zugegriffen werden).
- Bestätigen Sie, dass die geschriebene Speichermenge korrekt war
- Löschen Sie den Speicherblock
- Bestätigen Sie, dass der gelöschte Speicherplatz den angegebenen Speicherplatz freigegeben hat.
Wie schreibe ich gezielt in die Speicheradressen der Blockspeichereinheit? Ich denke, ich kann das mit C oder Python machen. Ich sehe, dass die Einheit in /dev/vdc
und existiert /sys/block/vdc
, aber ich bin mir nicht sicher, wie ich sie genau überwachen soll oder ob meine obige Idee eine gute Methode ist.
CentOS6/7
Antwort1
Sie können Speicherblöcke schreiben und lesen mit dd
:
dd if=/dev/zero of=/dev/vdc bs=512 count=2 seek=123
schreibt 2 Blöcke mit 512 Bytes in die Blöcke 123 und 124 und /dev/vdc
verwendet dabei Nullen als Eingabe. Sie können alles als Eingabe verwenden: /dev/urandom
, einen Prozess, der ein Bitmuster erzeugt, ...
Diese kannst Du mit wieder auslesen dd
und Dir zB in Hex anzeigen lassen:
dd if=/dev/vdc bs=512 count=1 skip=123 | hexdump -C
Sie sollten etwa Folgendes sehen:
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
weil hexdump
identische Zeilen zusammengeführt werden.
Weitere Details mit man dd
.
Sie können Ihre Anforderungen zum Lesen und Schreiben von „Blöcken aus dem Speicher“ überdenken, da es nicht so einfach ist, über die Befehlszeile Speicher zu reservieren und darauf zuzugreifen.
Wenn Sie es in C oder Python machen möchten, fragen Sie bitte nachPaketüberfluss, nicht hier.