Ceph-OSD-Festplattenlöschvorgang
Erweiterung: Löschen der OSD-Festplatte(Hier nehmen wir das Löschen der OSD.0-Festplatte auf Knoten1 als Beispiel)
1. Überprüfen Sie den Status der OSD-Festplatte
[root@node1 ceph]# Ceph-OSD-Baum ID KLASSE GEWICHT TYP NAME STATUS NEUGEWICHT PRI-AFF -1 0,00298 Root-Standard -3 0,00099 Hostknoten1 0 hdd 0.00099 osd.0 up 1.00000 1.00000 -5 0,00099 Hostknoten2 1 hdd 0.00099 osd.1 up 1.00000 1.00000 -7 0,00099 Hostknoten3 2 hdd 0.00099 osd.2 up 1.00000 1.00000
2. Markieren Sie es zunächst als aus
[root@node1 ceph]# ceph osd out osd.0 markiert osd.0. [root@node1 ceph]# Ceph-OSD-Baum ID KLASSE GEWICHT TYP NAME STATUS NEUGEWICHT PRI-AFF -1 0,00298 Root-Standard -3 0,00099 Hostknoten1 0 hdd 0.00099 osd.0 up 0 1.00000 Sie können sehen, dass das Gewicht 0 ist, der Status jedoch immer noch UP ist -5 0,00099 Hostknoten2 1 hdd 0.00099 osd.1 up 1.00000 1.00000 -7 0,00099 Hostknoten3 2 hdd 0.00099 osd.2 up 1.00000 1.00000
3, dann rm zum Löschen, aber gehen Sie zuerst zu dem Knoten, der ==osd.0== entspricht, um die Ceph- zu stoppen. osd-Dienst. Andernfalls funktioniert rm nicht
[root@node1 ceph]# systemctl stop [email protected] [root@node1 ceph]# ceph osd rm osd.0 osd.0 entfernt [root@node1 ceph]# Ceph-OSD-Baum ID KLASSE GEWICHT TYP NAME STATUS NEUGEWICHT PRI-AFF -1 0,00298 Root-Standard -3 0,00099 Hostknoten1 0 hdd 0.00099 osd.0 DNE 0 Der Status ist nicht mehr UP -5 0,00099 Hostknoten2 1 hdd 0.00099 osd.1 up 1.00000 1.00000 -7 0,00099 Hostknoten3 2 hdd 0.00099 osd.2 up 1.00000 1.00000
4. Überprüfen Sie den Clusterstatus
[root@node1 ceph]# ceph -s Cluster: ID: 6788206c-c4ea-4465-b5d7-ef7ca3f74552 Gesundheit: HEALTH_WARN 1 OSDs sind in der Crush-Map, aber nicht in der OSD-Map vorhanden. Es gibt eine Warnung und sie wird im Crush-Algorithmus nicht gelöscht Dienstleistungen: Montag: 3 Daemons, Quorum Knoten1, Knoten2, Knoten3 mgr: Knoten1 (aktiv), Standbys: Knoten2, Knoten3 osd: 2 osds: 2 up, 2 in. Es wurde festgestellt, dass nur zwei osds vorhanden sind, was darauf hinweist, dass osd.0 erfolgreich gelöscht wurde. Daten: Pools: 0 Pools, 0 Seiten Objekte: 0 Objekte, 0 B Nutzung: 28 MiB verwendet, 2,0 GiB / 2,0 GiB verfügbar. 3G wurde in 2G geändert, was auf eine erfolgreiche Löschung hinweist Seiten:
5. Löschen Sie den Crush-Algorithmus und die Authentifizierungsüberprüfung
[root@node1 ceph]# ceph osd crush osd.0 entfernen Artikel-ID 0, Name 'osd.0' entfernt von der Crush-Karte
[root@node1 ceph]# ceph auth del osd.0 Aktualisiert
6, Sie müssen auch auf dem Knoten deinstallieren, der ==osd.0== entspricht
[root@node1 ceph]# df -h |grep osd tmpfs 488M 48K 488M 1% /var/lib/ceph/osd/ceph-0 [root@node1 ceph]# umount /var/lib/ceph/osd/ceph-0
7, Auf dem Knoten, der osd.0 entsprichtLöschen Sie das von der OSD-Festplatte generierte logische Volume
[root@node1 ceph]# pvs PV VG Fmt Attr PSize PFree /dev/sdb ceph-56e0d335-80ba-40d8-b076-fc63a766dcac lvm2 a-- 1020.00m 0 [root@node1 ceph]# vgs VG #PV #LV #SN Attr VSize VFree ceph-56e0d335-80ba-40d8-b076-fc63a766dcac 1 1 0 wz--n- 1020.00m 0 [root@node1 ceph]# lvremove ceph-56e0d335-80ba-40d8-b076-fc63a766dcac Möchten Sie das aktive logische Volume ceph-56e0d335-80ba-40d8-b076-fc63a766dcac/osd-block-ef26149d-5d7d-4cc7-8251-684fbddc2da5 wirklich entfernen? [j/n]:j Logisches Volume „osd-block-ef26149d-5d7d-4cc7-8251-684fbddc2da5“ erfolgreich entfernt
Zu diesem Zeitpunkt wurde es vollständig gelöscht
8. Wenn Sie es wieder hinzufügen möchten, verwenden Sie den folgenden Befehl erneut auf dem Bereitstellungsknoten.
[root@node1 ceph]# ceph-deploy disk zap node1 /dev/sdb [root@node1 ceph]# ceph-deploy osd create --data /dev/sdb node1
SAN
Klassifizierung von SANs
Zwei Arten von SAN:
-
FC-SAN: In den Anfängen von SAN erfolgte die Datenübertragung zwischen Servern und Switches über Glasfasern. Die Server übertrugen SCSI-Befehle an die Speichergeräte, konnten dies jedoch nicht Verwenden Sie gewöhnliche LAN-Netzwerke. IP-Protokoll.
-
IP-SAN: Ein durch das IP-Protokoll gekapseltes SAN kann sich vollständig mit dem normalen Netzwerk verbinden und wird daher IP-SAN genannt. Das typischste ist ISCSI.
Vor- und Nachteile von FC-SAN: hohe Geschwindigkeit (2G, 8G, 16G), hohe Kosten, Übertragungsentfernung weist bestimmte Einschränkungen auf.
Vor- und Nachteile von IP-SAN: langsamere Geschwindigkeit (es gibt bereits einen W-Gigabit-Ethernet-Standard), niedrige Kosten und unbegrenzte Übertragungsentfernung.
IP-SAN-ISCSI-Implementierung
Experiment: Die Linux-Plattform implementiert IP-SAN über iscsi
Experimentvorbereitung: Zwei virtuelle Maschinen (Centos7-Plattform) befinden sich im selben Netzwerksegment (z. B. vmnet8). Es besteht keine Notwendigkeit, den Switch zu simulieren, da die virtuellen Maschinen im selben Netzwerksegment einer Verbindung mit demselben Switch entsprechen.
-
Statische IP, (die beiden IPs können miteinander kommunizieren, Gateway und DNS sind nicht erforderlich)
-
Beide konfigurieren den Hostnamen und seinen Hostnamen so, dass sie aneinander gebunden werden.
-
Schalten Sie Firewall und Selinux aus
-
Zeitsynchronization
-
Yum konfigurieren (Epel-Quelle hinzufügen)
-
Simulieren Sie den Speicher auf der Seite des Speicherexports (simulierter Speicher kann verschiedene Formen verwenden, z. B. Festplatte: /dev/sdb, Partition: /dev/sdb1, Soft-Raid: /dev/md0, logisches Volume: /dev/vg/lv01, dd Erstellung großer Dateien usw.)
Zur Vereinfachung des Experiments werde ich die große Datei von dd verwenden, um die Speicherung zu simulieren. export# mkdir /data/ export# dd if=/dev/zero of=/data/storage1 bs=1M count=500 export# dd if=/dev/zero of=/data/storage2 bs=1M count=1000 export# dd if=/dev/zero of=/data/storage3 bs=1M count=1500 export# dd if=/dev/zero of=/data/storage4 bs=1M count=2000 Man simuliert 4 Speicherdateien für den Export (die Größen sind zur späteren Diskussion unterschiedlich).
Experimentelle Schritte:
-
Installieren Sie die Software auf der Exportseite, konfigurieren Sie den exportierten Speicher und starten Sie den Dienst.
-
Import installiert Software auf der Importseite, importiert Speicher und startet Dienste.
Versuchsablauf:
Schritt 1: Installieren Sie das iscsi-target-utils-Paket auf der Exportseite
export# yum install epel-release -y Wenn die Epel-Quelle nicht installiert ist, bestätigen Sie die Installation erneut export# yum install scsi-target-utils -y
Schritt 2: Konfigurieren Sie den Export von Speicher auf der Exportseite
export# cat /etc/tgt/targets.conf |grep -v "#" Standard-Treiber iscsi <target iscsi:data1> Sicherungsspeicher /data/storage1 </target> <target iscsi:data2> Backing-Store /data/storage2 </target> <target iscsi:data3> Backing-Store /data/storage3 </target> <target iscsi:data4> Backing-Store /data/storage4 </target>
Schritt 3: Starten Sie den Dienst auf der Exportseite und überprüfen Sie ihn
export# systemctl start tgtd export# systemctl tgtd aktivieren Überprüfen Sie, ob der Port und die freigegebenen Ressourcen in Ordnung sind export# lsof -i:3260 export# tgt-admin --show
Schritt 4: Installieren Sie das Paket iscsi-initiator-utils auf der Importseite
import# yum install iscsi-initiator-utils
Schritt 5: Speicher auf der Importseite importieren
Bevor Sie sich anmelden, müssen Sie zunächst eine Verbindung herstellen und Ressourcen entdecken (Discovery).
import# iscsiadm -m Discovery -t sendtargets -p 10.1.1.11 10.1.1.11:3260,1 iscsi:data1 10.1.1.11:3260,1 iscsi:data2 10.1.1.11:3260,1 iscsi:data3 10.1.1.11:3260,1 iscsi:data4
Nachdem Sie die Ressource erfolgreich erkannt haben, können Sie sich bei der Ressource anmelden.
Melden Sie sich nur in einem der Stores an: import# iscsiadm -m node -T iscsi:data1 -p 10.1.1.11 -l Loggen Sie sich direkt in alle entdeckten Stores ein: import# iscsiadm -m node -l
Verwenden Sie nach erfolgreicher Anmeldung direkt fdisk -l zum Anzeigen
import# fdisk -l |grep sd[b-z]
Schritt 6: Starten Sie den Dienst auf der Importseite
Starten Sie den Dienst und lassen Sie ihn beim Booten automatisch starten import# systemctl iscsi starten import# systemctl iscsi aktivieren import# systemctl start iscsid import# systemctl iscsid aktivieren
Ergänzung: Bezüglich des Vorgangs zum Abbrechen der Verbindung
Melden Sie ein bestimmtes Verzeichnis ab: Ändern Sie -l in -u import# iscsiadm -m node -T iscsi:data1 -p 10.1.1.11 -u Alle Verzeichnisse abmelden: import# iscsiadm -m node -u Wenn Sie sogar die Erkennungsinformationen löschen möchten, verwenden Sie den Befehl --op delete. import# iscsiadm -m node -T iscsi:data1 -p 10.1.1.11 --op delete Löschen Sie alle angemeldeten Verzeichnisinformationen: import# iscsiadm -m node --op delete
Frage 1: Was finden Sie, wenn Sie sich ein paar Mal erneut anmelden?
import# iscsiadm -m node -u &> /dev/null import# iscsiadm -m node -l &> /dev/null import# fdisk -l |grep sd[b-z]
Antwort: Sie werden feststellen, dass die Namen verwechselt werden. Zu den Lösungen gehören udev und Storage Multipathing.
Frage 2: Wenn Sie einen neuen Importserver hinzufügen, importieren die beiden Importserver denselben Speicher, formatieren und mounten ihn dann. Ist gleichzeitiges Lesen und Schreiben möglich?
Antwort: Nein.
Außerschulische Entwicklung: Sie können die Verifizierungsfunktion für den exportierten Speicher konfigurieren und auf der Importseite den richtigen Benutzernamen und das richtige Passwort für die Anmeldung konfigurieren
Es gibt nur zwei Unterschiede:
-
Fügen Sie bei der Konfiguration der Exportseite Funktionen zur Überprüfung von Benutzernamen und Passwörtern hinzu
<target iscsi:data1> Sicherungsspeicher /data/storage1 Incominguser Daniel Daniel123 Verifizierungsfunktion, dieser Benutzer kann sie anpassen und hat nichts mit Systembenutzern zu tun </target>
-
Bei der Konfiguration der Importseite müssen Sie den folgenden Schritt konfigurieren, der dem Benutzernamen und Passwort der Exportseite entspricht.
Wenn die Exportseite mit der Verifizierungsfunktion konfiguriert ist, muss die Importseite den richtigen Benutzernamen und das richtige Passwort konfigurieren, bevor alles in Ordnung ist. CHAP (Challenge-Handshake Authentication Protocol) Challenge-Handshake-Authentifizierungsprotokoll import# vim /etc/iscsi/iscsid.conf 57 node.session.auth.authmethod = CHAP 61 node.session.auth.username = Daniel 62 node.session.auth.password = daniel123 71 Discovery.sendtargets.auth.authmethod = CHAP 75 Discovery.sendtargets.auth.username = Daniel 76 Discovery.sendtargets.auth.password = daniel123 Nachdem Sie diesen Schritt abgeschlossen haben, können Sie die Ressourcen entdecken und sich anmelden
Speicher-Mehrweg
Speicher-Multipath (Geräte-Multipath): Entspricht der Dual-Line-Bindung von Speicherleitungen, wobei HA oder LB ausgeführt werden.
Wirkung:
-
Doppelte Lagerlinie HA
-
Doppelte Lagerlinie LB
-
Sie können den gebundenen Gerätenamen anpassen, um den Zweck der Festlegung des iscsi-Gerätenamens zu erreichen.
Versuchsvorbereitung
-
Fügen Sie basierend auf dem vorherigen Experiment eine Netzwerkkarte am Exportende und am Importende hinzu, um eine Verbindung zu einem neuen Netzwerk herzustellen (Hinweis: Neu Das Netzwerksegment muss eine statische IP verwenden. Mein Netzwerksegment hier ist 10.2.2.0/24
vmnet8 10.1.1.0/24 vmnet1 10.2.2.0/24
-
Melden Sie sich dann auf der Speicherimportseite von diesen vier Speichern ab und löschen Sie die zugehörigen Informationen.
import# iscsiadm -m node -u import# iscsiadm -m node --op delete
Versuchsablauf
Schritt 1: Ermitteln Sie auf der Speicherimportseite den Speicher auf der Exportseite. Verwenden Sie die == zwei IPs auf der Exportseite, um diese jeweils zu ermitteln, und melden Sie sich dann bei ihnen an.
import# iscsiadm -m Discovery -t sendtargets -p 10.1.1.11 10.1.1.11:3260,1 iscsi:data1 10.1.1.11:3260,1 iscsi:data2 10.1.1.11:3260,1 iscsi:data3 10.1.1.11:3260,1 iscsi:data4 import# iscsiadm -m Discovery -t sendtargets -p 10.2.2.11 10.2.2.11:3260,1 iscsi:data1 10.2.2.11:3260,1 iscsi:data2 10.2.2.11:3260,1 iscsi:data3 10.2.2.11:3260,1 iscsi:data4
Melden Sie alle erkannten Ziele an
import# iscsiadm -m node -l Verwenden Sie den Befehl fdisk -l |grep sd[b-z], um 8 Speicher anzuzeigen (es gibt jedoch tatsächlich 4 Speicher, auf die jeweils über zwei Netzwerkleitungen zugegriffen wird).
Schritt 2: Installieren Sie das Paket „device-mapper-multipath“ auf der Speicherimportseite
import# yum install device-mapper\*
Schritt 3: Führen Sie eine Mehrpfadbindung für die oben genannten 8 durch und binden Sie sie zu 4 (derselbe Speicher wird für den Zugriff auf zwei Zeilen zu einem gebunden).
Führen Sie diesen Befehl zuerst aus, um die Konfigurationsdatei /etc/multipath.conf zu generieren
import# mpathconf --enable
Konfigurieren Sie die Konfigurationsdatei /etc/multipath.conf
import# cat /etc/multipath.conf |grep -v ^# |grep -v ^$ defaults { Siehe globale Konfigurationsparameter user_Friendly_names ja Verwenden Sie benutzerfreundliche Namen (der Standardname ist wwid, der Name ist lang und schwer zu erkennen, der benutzerfreundliche Name kann angepasst werden) find_multipaths ja } blacklist { blacklist (gibt an, dass nicht alle Geräte in der Blacklist als Multipath-Geräte gebunden werden) } import# vim /etc/multipath.conf schwarze Liste { devnode „^sda“ Mit Ausnahme von Geräten, die mit „sda“ beginnen, mache ich Multipathing (bezogen auf die 8 erkannten Geräte). }
Dienst starten
import# systemctl multipathd.service starten import# systemctl multipathd.service aktivieren
Schritt 4: Überprüfen Sie den aktuellen Bindungsstatus
Verwenden Sie den Befehlmultipath -ll
, um vier neu gebundene Geräte anzuzeigen (mpatha, mpathb, mpathc, mpathd). Diese vier Geräte sind zweizeilig gebundene Geräte
/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sda
Mit dem Befehl kann die wwid angezeigt werden
import# multipath -ll mpathd (360000000000000000e00000000040001) dm-3 IET,VIRTUAL-DISK lange numerische Zeichenfolge ist wwid size=2.0G Features='0' hwhandler='0' wp=rw |-+- Policy='service-time 0' prio=1 status=aktive Hauptleitung | `- 8:0:0:1 sdf 8:80 aktiv, betriebsbereit `-+- Policy='service-time 0' prio=1 Status=aktivierte Standby-Leitung (d. h. der Standardwert ist aktiv und Standby-HA-Modus) `- 9:0:0:1 sdh 8:112 aktiv, betriebsbereit mpathc (360000000000000000e00000000030001) dm-2 IET, VIRTUAL-DISK Größe=1,5G Features='0' hwhandler='0' wp=rw |-+- Policy='service-time 0' Prio=1 Status=aktiv | `- 6:0:0:1 sde 8:64 aktiv, betriebsbereit `-+- Policy='service-time 0' Prio=1 Status=aktiviert `- 7:0:0:1 sdg 8:96 aktiv, betriebsbereit mpathb (360000000000000000e00000000020001) dm-1 IET, VIRTUAL-DISK size=1000M Features='0' hwhandler='0' wp=rw |-+- Policy='service-time 0' Prio=1 Status=aktiv | `- 4:0:0:1 sdc 8:32 aktiv, betriebsbereit `-+- Policy='service-time 0' Prio=1 Status=aktiviert `- 5:0:0:1 sdd 8:48 aktiv, betriebsbereit mpatha (360000000000000000e00000000010001) dm-0 IET, VIRTUAL-DISK size=500M Features='0' hwhandler='0' wp=rw |-+- Policy='service-time 0' Prio=1 Status=aktiv | `- 2:0:0:1 sda 8:0 aktiv betriebsbereit `-+- Policy='service-time 0' Prio=1 Status=aktiviert `- 3:0:0:1 sdb 8:16 aktiv, betriebsbereit
Schritt 5: Als Nächstes werde ich die Bindung dieser 8 Speicher anpassen (binden Sie die Namen an data1 bzw. data2, und diese beiden werden in den ha-Hochverfügbarkeitsmodus umgewandelt; data3 und data4 werden in den lb-Lastausgleichsmodus umgewandelt).
import# cat /etc/multipath.conf |grep -v ^# |grep -v ^$ Standardwerte { user_freundliche_namen ja find_multipaths ja } Mehrwege { Mehrweg { wwid 360000000000000000e00000000010001 wwid-Wert Alias data1 benutzerdefinierter Bindungsname path_grouping_policy Failover-HA-Modus Failback sofort: Nachdem die Hauptleitung aufgelegt und neu gestartet wurde, wird sie sofort wieder zurückgeschaltet. } Mehrweg { wwid 360000000000000000e00000000020001 Aliasdaten2 path_grouping_policy-Failover sofortiges Failback } Mehrweg { wwid 360000000000000000e00000000030001 Aliasdaten3 path_grouping_policy Multibus-LB-Modus path_selector „Round-Robin 0“ Der Algorithmus von LB ist rr Round-Robin } Mehrweg { wwid 360000000000000000e00000000040001 auch bekannt als data4 path_grouping_policy Multibus path_selector "Round-Robin 0" } } schwarze Liste { }
Schritt 6: Starten Sie den Dienst neu, damit die benutzerdefinierte Konfiguration wirksam wird
import# systemctl multipathd.service neu starten Nach der Prüfung und Verifizierung wird es an Namen wie Daten1, Daten2, Daten3 und Daten4 gebunden. import# multipath -ll import# ls /dev/mapper/data* /dev/mapper/data1 /dev/mapper/data2 /dev/mapper/data3 /dev/mapper/data4
Schritt 7: Testen (der Testvorgang entfällt, siehe Lehrvideo)
Wählen Sie im Failover- und Multibus-Modus jeweils ein Speicherformat aus (Sie können es direkt formatieren oder es zuerst partitionieren und dann formatieren) und mounten Sie es zum Testen. Wenn /dev/mapper/data4 in zwei Partitionen unterteilt ist, lauten die entsprechenden Namen: /dev/mapper/data4p1, /dev/mapper/data4p2 (wenn Sie es nach der Partitionierung nicht sehen können, können Sie es mit dem Befehl partprobe aktualisieren).
Wenn Sie Centos7 in /etc/fstab schreiben, müssen Sie einen weiteren Parameter (_netdev) hinzufügen, um es automatisch erfolgreich bereitzustellen. Die Schreibmethode ist wie folgt /dev/mapper/data4p1 /mnt xfs defaults,_netdev 0 0