admin_grundlagen:ssd
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
| admin_grundlagen:ssd [2019/01/01 22:41] – angelegt ingo_wichmann | admin_grundlagen:ssd [2026/10/13 14:01] (aktuell) – [virtio] ingo_wichmann | ||
|---|---|---|---|
| Zeile 4: | Zeile 4: | ||
| Geräte mit 1 in der Spalte " | Geräte mit 1 in der Spalte " | ||
| - | ====== | + | ===== alle Blockgeräte die discard unterstützen |
| - | Optional (damit man es besser sieht) Einsen auf die Partition schreiben: | + | z.B. [[# |
| + | lsblk -bo NAME, | ||
| + | oder | ||
| + | grep -vxl 0 / | ||
| + | (( | ||
| + | "__A discard_max_hw_bytes value of 0 means that the device does not support discard functionality.__" | ||
| + | https:// | ||
| + | )) | ||
| + | ====== Ganzen Inhalt | ||
| + | ((Optional (damit man es besser sieht) Einsen auf die Partition schreiben: | ||
| tr ' | tr ' | ||
| fdisk -l /dev/sda | fdisk -l /dev/sda | ||
| Zeile 15: | Zeile 24: | ||
| hdparm --read-sector 444416 /dev/sda | hdparm --read-sector 444416 /dev/sda | ||
| hdparm --read-sector 21415935 /dev/sda | hdparm --read-sector 21415935 /dev/sda | ||
| - | -> sollte lauter Einsen anzeigen | + | -> sollte lauter Einsen anzeigen TODO: hier prüfe ich nur den ersten und den letzten Sektor, besser wäre ein Test ob alle Sektoren Einsen enthalten)) |
| Daten auf Partition ''/ | Daten auf Partition ''/ | ||
| blkdiscard /dev/sda2 | blkdiscard /dev/sda2 | ||
| - | Prüfen: | + | ((Prüfen: |
| hdparm --read-sector 444416 /dev/sda | hdparm --read-sector 444416 /dev/sda | ||
| hdparm --read-sector 21415935 /dev/sda | hdparm --read-sector 21415935 /dev/sda | ||
| - | -> sollte lauter Nullen anzeigen | + | -> sollte lauter Nullen anzeigen TODO: hier prüfe ich nur den ersten und den letzten Sektor, besser wäre ein Test ob alle Sektoren Nullen enthalten)) |
| ====== manuell freie Bereiche eines Dateisystems " | ====== manuell freie Bereiche eines Dateisystems " | ||
| - | Optional: Datei mit lauter Einsen anlegen und wieder löschen: | + | ((Optional: Datei mit lauter Einsen anlegen und wieder löschen: |
| tr ' | tr ' | ||
| od -x file1 | od -x file1 | ||
| Zeile 43: | Zeile 52: | ||
| hdparm --read-sector 14874624 /dev/sda | hdparm --read-sector 14874624 /dev/sda | ||
| hdparm --read-sector 14884863 /dev/sda | hdparm --read-sector 14884863 /dev/sda | ||
| - | -> sollte lauter Einsen ausgeben | + | -> sollte lauter Einsen ausgeben)) |
| freie Bereiche des Dateisystems unter ''/ | freie Bereiche des Dateisystems unter ''/ | ||
| Zeile 51: | Zeile 60: | ||
| </ | </ | ||
| - | Prüfen: | + | ((Prüfen: |
| hdparm --read-sector 14874624 /dev/sda | hdparm --read-sector 14874624 /dev/sda | ||
| hdparm --read-sector 14884863 /dev/sda | hdparm --read-sector 14884863 /dev/sda | ||
| - | -> sollte lauter Nullen ausgeben | + | -> sollte lauter Nullen ausgeben)) |
| ===== regelmäßig " | ===== regelmäßig " | ||
| - | Laut [[https:// | + | |
| + | Ab Debian 10 und Ubuntu 18.04 default: | ||
| systemctl edit --force fstrim.timer | systemctl edit --force fstrim.timer | ||
| <file txt / | <file txt / | ||
| Zeile 86: | Zeile 97: | ||
| ====== kontinuierlich freie Bereiche eines Dateisystems " | ====== kontinuierlich freie Bereiche eines Dateisystems " | ||
| - | TODO: verlangsamt laut diversen Webseiten die Geschwindikeit | + | TODO: verlangsamt laut diversen Webseiten die Geschwindigkeit |
| mount -o discard /dev/sda2 /mnt/ext4 | mount -o discard /dev/sda2 /mnt/ext4 | ||
| - | + | ((Prüfen: | |
| - | Prüfen: | + | |
| Datei mit lauter Einsen anlegen und wieder löschen: | Datei mit lauter Einsen anlegen und wieder löschen: | ||
| tr ' | tr ' | ||
| Zeile 108: | Zeile 118: | ||
| -> sollte lauter Einsen ausgeben | -> sollte lauter Einsen ausgeben | ||
| rm file1 | rm file1 | ||
| + | sync | ||
| Prüfen: | Prüfen: | ||
| watch hdparm --read-sector 14874624 /dev/sda | watch hdparm --read-sector 14874624 /dev/sda | ||
| - | -> sollte (spätestens nach ein paar Minuten) lauter Nullen ausgeben | + | -> sollte (spätestens nach ein paar Minuten) lauter Nullen ausgeben)) |
| + | BTRFS: "Since kernel 6.2 the discard=async mount option is automatically enabled on devices that support that" -> "freed file extents are first tracked in memory and after a period or enough ranges accumulate the trim is started, expecting the ranges to be much larger and allowing to throttle the number of IO requests which does not interfere with the rest of the filesystem activity" | ||
| + | ====== kontinuierlich freie Bereiche im LVM " | ||
| + | Beim Löschen und verkleinern von Logical Volumes frei werdende Bereiche " | ||
| + | warum ist das nicht default? | ||
| + | |||
| + | Aus https:// | ||
| + | "Even with the automatic backups of the lvm metadata, it is impossible to recover from the wrongly removed LV. This is the reason why this feature is off by default." | ||
| + | |||
| + | Alternative: | ||
| + | |||
| + | <file txt / | ||
| + | [Service] | ||
| + | ExecStart=lvcreate -l100%FREE -n trim your_volume_group | ||
| + | ExecStart=blkdiscard / | ||
| + | ExecStart=lvremove your_volume_group/ | ||
| + | </ | ||
| + | )) | ||
| + | <file txt / | ||
| + | … | ||
| + | devices { | ||
| + | … | ||
| + | issue_discards = 1 | ||
| + | … | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ====== virtio ====== | ||
| + | libvirt mit KVM/quemu kennt die Option ''< | ||
| + | <file xml> | ||
| + | <disk type=" | ||
| + | <driver name=" | ||
| + | <target dev=" | ||
| + | </ | ||
admin_grundlagen/ssd.1546382469.txt.gz · Zuletzt geändert: 2019/01/01 22:41 von ingo_wichmann
