Lassen Sie diese zuvor gestellten Fragen hinter sich
So erhalten Sie freien Speicherplatz auf dem bereitgestellten Laufwerk Redhat 7
Update crypttab fragt nach Passphrase für fstrim
Wir haben einen HP 3PAR StoreServ 7400 mit 170 VMs, die auf 38 Hosts verteilt sind.
Hier ist das Problem, wie ich es verstehe: (Außerdem wurden mir einige Informationen mitgeteilt, dass ich nicht sicher bin, ob es wahr ist oder nicht. Ich habe das HP 3PAR StoreServ 7400 Whitepaper durchgelesen und kann wirklich nichts finden, was die Eigenschaften meines Speichers bestätigt Wenn jemand bemerkt, dass etwas nicht stimmt, lassen Sie es mich bitte wissen.)
Die 3 PAR ist in 3 Abschnitte unterteilt,
Schicht 1: SSD zum Zwischenspeichern und schnellen Zugriff auf Dateien, auf die häufig zugegriffen wird.
Layer 2: und Layer 3: Eine Art sich drehender Datenträger. Was und warum gibt es zusätzliche 2 Layer? Ich bin mir nicht sicher, aber ich gehe davon aus, dass Layer 2 für Daten verwendet wird, auf die nicht am häufigsten zugegriffen wird, für die jedoch ein bisschen zugegriffen wird. Layer 3 wird verwendet Lagerung des Restes.
Innerhalb des SSD-Abschnitts, wie ich in vielen Artikeln gelesen habe, wenn Daten in einen SSD-Block geschrieben und dann gelöscht werden, wird dieser Block erst dann auf Null gesetzt, wenn neue Daten in ihn geschrieben werden. Wenn also die Daten innerhalb des Blocks gelöscht werden, wird die Tabelle gelöscht, in der das Mapping gespeichert ist info wird aktualisiert, und wenn neue Daten in denselben Block geschrieben werden, muss der Block zuerst auf Null gesetzt werden, und dann kann in ihn geschrieben werden. Dieser Vorgang innerhalb der SSD kann, wenn die Periodizität des Laufwerks nicht angepasst wird, zu niedrigeren w / r-Geschwindigkeiten führen.
Die 3PAR LUN ist Thin Provisioned, die VMs sind Eager Thick Provisioned.
Meiner Meinung nach hat der 3PAR eine spezielle Funktion eingebaut, die es ermöglicht, dass SSD-Speicher bei Bedarf nicht für die anderen VMs verfügbar ist, was keinen Sinn ergibt.
Faktencheck:
Bei einer Thick-Provisioning-VM handelt es sich um eine VMDK-Datei. Wenn die VM erstellt wird, geben Sie die Größe der VM an. Dadurch wird eine VMDK-Datei erstellt. Ich denke, das sagt mir, dass, wenn auf die VM regelmäßig zugegriffen wird, die gesamte VMDK-Datei auf SDD verschoben wird, und sie sagen mir, dass selbst wenn die VMDK auf 40 GB eingestellt ist, einige dieser 40 GB verwendet werden können andere VMs? Das klingt für mich eher nach einer Thin Provisioned VM als nach einer Thick.
Ok, ich komme zum Problem.
Auf unseren Windows-Systemen verwenden wir sdelete, um nicht verwendete Blöcke zu finden und auf Null zu setzen.
Auf unserem Linux-Fedora-System habe ich immer wieder versucht, herauszufinden, wie ich fstrim zum Laufen bringen kann.
Ich habe den Befehl dd = write-big-file delete-big-file ausprobiert und dabei die Datenträger-E / A durch das Dach geschickt, was bemerkt wurde, und mir wurde gesagt, dass ich das nicht noch einmal tun soll.
Wenn ich ein wenig nachforsche, sehe ich, dass sdelete so ziemlich dasselbe wie dd = große Datei schreiben, große Datei löschen, also warum geht die Festplatten-E / A bei Windows-Systemen nicht durch das Dach?
Ich glaube, ich habe es auf zwei Lösungen reduziert. Weder von denen ich weiß, wie man tut.
- Irgendwie, ohne die VMs in ein anderes Speicher-Array zu verlagern, kann eine fstrim-ähnliche Funktion auf dem gesamten SSD-Teil des SAN ausgeführt werden.
Randnotiz: Wenn ich alles verstehe, was ich gelesen habe, schaut fstrim in jedem Block nach, um festzustellen, ob Daten vorhanden sind und ob sie benötigt werden. Wenn sie nicht benötigt werden, wird der Block auf Null gesetzt, wobei sdelete eine große Datei schreibt und sie dann löscht. Aus diesem Grund suche ich nach einer fstrim-Option für den gesamten SSD-Teil des 3PAR.
- Longshot, aber der Fehler, den ich mit fstrim bekomme, ist:
[root @ rhtest ~] # fstrim -v / fstrim: /: Der Löschvorgang wird nicht unterstützt
Ich habe gelesen, dass die Discard-Option sowohl auf dem Betriebssystem als auch auf dem Datenspeicher festgelegt werden muss, aber ich kann nicht herausfinden, wo oder wie eine Discard-Option auf dem 3PAR festgelegt werden soll. Ich habe sowohl SSH- als auch GUI-Zugriff auf den 3PAR.
Ich habe unzählige Komplettlösungen zum Einrichten von Discards innerhalb des Betriebssystems durchlaufen und unabhängig davon, auf wie viele verschiedene Arten ich sie drehe, erhalte ich immer den gleichen Fehler.
Ja, ich habe mir auch andere Optionen angesehen, die nullfrei sind, und ein paar andere, die mir nicht in den Sinn kommen, aber sie haben entweder wie zdelete gearbeitet, oder ich habe gelesen, dass sie sehr gefährlich sind, ich habe in den hdparam usw. geschaut.
Im Folgenden werde ich einige Ausgaben über das betreffende Betriebssystem machen, die alle gleich sind.
[root@rhtest ~]# hostnamectl
Static hostname: rhtest.domain.com
Icon name: computer-vm
Chassis: vm
Machine ID: f52e8e75ae704c579e2fbdf8e7a1d5ac
Boot ID: 98ba6a02443d41cba9cf457acf5ed194
Virtualization: vmware
Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)
CPE OS Name: cpe:/o:redhat:enterprise_linux:7.2:GA:server
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
[root@rhtest ~]# blkid
/dev/block/8:2: UUID="2OHGU8-ir1w-LLGB-6v72-zZqN-CIaX-FjGImJ" TYPE="LVM2_member"
/dev/block/253:1: UUID="ad872f09-5147-4252-af56-aa6244219515" TYPE="xfs"
/dev/block/8:1: UUID="83aac355-a443-4ff9-90fa-9f6da8e31cc2" TYPE="xfs"
/dev/block/253:0: UUID="dbe56f6a-2a4a-42da-82e2-bef9a73caafb" TYPE="swap"
[root@rhtest ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 50G 0 disk
ââsda1 8:1 0 500M 0 part /boot
ââsda2 8:2 0 49.5G 0 part
âârhel_-rhtest-swap 253:0 0 2G 0 lvm [SWAP]
âârhel_-rhtest-root 253:1 0 47.5G 0 lvm /
sdb 8:16 0 50G 0 disk
sr0 11:0 1 1024M 0 rom
[root@rhtest ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel_-rhtest-root 48G 883M 47G 2% /
devtmpfs 991M 0 991M 0% /dev
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 1001M 8.5M 993M 1% /run
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
/dev/sda1 497M 124M 374M 25% /boot
tmpfs 201M 0 201M 0% /run/user/0
quelle