Cephs OSD-Festplattenlöschvorgang und ISCSI-Erweiterung

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:

  1. 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.

  2. 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.

  1. Statische IP, (die beiden IPs können miteinander kommunizieren, Gateway und DNS sind nicht erforderlich)

  2. Beide konfigurieren den Hostnamen und seinen Hostnamen so, dass sie aneinander gebunden werden.

  3. Schalten Sie Firewall und Selinux aus

  4. Zeitsynchronization

  5. Yum konfigurieren (Epel-Quelle hinzufügen)

  6. 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:

  1. Installieren Sie die Software auf der Exportseite, konfigurieren Sie den exportierten Speicher und starten Sie den Dienst.

  2. 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:

  1. 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>
  1. 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:

  1. Doppelte Lagerlinie HA

  2. Doppelte Lagerlinie LB

  3. Sie können den gebundenen Gerätenamen anpassen, um den Zweck der Festlegung des iscsi-Gerätenamens zu erreichen.

Versuchsvorbereitung

  1. 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
  1. 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/sdaMit 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

Supongo que te gusta

Origin blog.csdn.net/qq_57747969/article/details/135005616
Recomendado
Clasificación