5.5. Erstellen eines gespiegelten logischen LVM-Datenträgers in einem Cluster

Zum Erstellen eines gespiegelten logischen LVM-Datenträgers in einem Cluster verwenden Sie dieselben Befehle und Verfahren wie zum Erstellen eines gespiegelten logischen LVM-Datenträgers auf einem einzigen Knoten. Um jedoch einen gespiegelten logischen LVM-Datenträger in einem Cluster zu erzeugen, muss der Cluster und die Cluster-Spiegelinfrastruktur laufen, der Cluster muss einsatzbereit sein, und der Sperrtyp in der lvm.conf-Datei muss richtig eingestellt sein, um Cluster-Sperren zu aktivieren, entweder direkt oder mittels lvmconf-Befehl wie in Abschnitt 3.1, »LVM-Datenträger in einem Cluster erstellen« beschrieben.
Das folgende Verfahren erstellt einen gespiegelten LVM-Datenträger in einem Cluster. Zunächst wird bei diesem Verfahren überprüft, ob die Cluster-Dienste installiert sind und ausgeführt werden, anschließend wird der gespiegelte Datenträger erstellt.
  1. Um einen gespiegelten logischen Datenträger zu erstellen, der von allen Knoten in einem Cluster gemeinsam verwendet wird, muss der Sperrtyp in der lvm.conf-Datei für jeden Knoten korrekt eingestellt sein. Standardmäßig ist der Sperrtyp auf lokal gesetzt. Führen Sie auf jedem Knoten im Cluster folgenden Befehl aus, um dies zu ändern und geclusterte Sperren zu aktivieren:
    # /sbin/lvmconf --enable-cluster
  2. Um einen geclusterten logischen Datenträger zu erstellen, muss die Cluster-Infrastruktur auf jedem Knoten im Cluster ausgeführt werden. Im folgenden Beispiel wird überprüft, ob der clvmd-Daemon auf dem Knoten läuft, auf dem er initiiert wurde.
    [root@doc-07 ~]# ps auxw | grep clvmd
    root     17642  0.0  0.1 32164 1072 ?        Ssl  Apr06   0:00 clvmd -T20 -t 90
    
    Der folgende Befehl zeigt die lokale Ansicht des Cluster-Zustands:
    [root@example-01 ~]# cman_tool services
    fence domain
    member count  3
    victim count  0
    victim now    0
    master nodeid 2
    wait state    none
    members       1 2 3
    
    dlm lockspaces
    name          clvmd
    id            0x4104eefa
    flags         0x00000000
    change        member 3 joined 1 remove 0 failed 0 seq 1,1
    members       1 2 3
    
  3. Vergewissern Sie sich, dass das cmirror-Paket installiert ist.
  4. Starten Sie den cmirrord-Dienst.
    [root@hexample-01 ~]# service cmirrord start
    Starting cmirrord:                                         [  OK  ]
    
  5. Erstellen Sie den Mirror. Erzeugen Sie dazu zunächst die physischen Datenträger. Die folgenden Befehle erzeugen drei physische Datenträger. Zwei der physischen Datenträger werden als Standbeine des Mirrors verwendet, der dritte physische Datenträger wird das Mirror-Protokoll enthalten.
    [root@doc-07 ~]# pvcreate /dev/xvdb1
      Physical volume "/dev/xvdb1" successfully created
    [root@doc-07 ~]# pvcreate /dev/xvdb2
      Physical volume "/dev/xvdb2" successfully created
    [root@doc-07 ~]# pvcreate /dev/xvdc1
      Physical volume "/dev/xvdc1" successfully created
    
  6. Erstellen Sie die Datenträgergruppe. Dieses Beispiel erzeugt eine Datenträgergruppe namens vg001, die aus den drei physischen Datenträgern besteht, die im vorangegangenen Schritt angelegt wurden.
    [root@doc-07 ~]# vgcreate vg001 /dev/xvdb1 /dev/xvdb2 /dev/xvdc1
      Clustered volume group "vg001" successfully created
    
    Beachten Sie, dass die Ausgabe des vgcreate-Befehls anzeigt, ob die Datenträgergruppe geclustert ist. Sie können überprüfen, ob eine Datenträgergruppe geclustert ist, indem Sie den vgs-Befehl ausführen, um die Parameter der Datenträgergruppe einzusehen. Ist die Datenträgergruppe geclustert, wird der "c"-Parameter angezeigt.
    [root@doc-07 ~]# vgs vg001
      VG       #PV #LV #SN Attr   VSize  VFree
      vg001      3   0   0 wz--nc 68.97G 68.97G
    
  7. Erstellen Sie den gespiegelten logischen Datenträger. Dieses Beispiel erzeugt den logischen Datenträger mirrorlv aus der Datenträgergruppe vg001. Dieser Datenträger hat ein Mirror-Standbein. Dieses Beispiel spezifiziert, welche Extents des physischen Datenträgers für den logischen Datenträger verwendet werden.
    [root@doc-07 ~]# lvcreate -l 1000 -m1 vg001 -n mirrorlv /dev/xvdb1:1-1000 /dev/xvdb2:1-1000 /dev/xvdc1:0
      Logical volume "mirrorlv" created
    
    Sie können den lvs-Befehl nutzen, um den Fortschritt der Mirror-Erstellung anzuzeigen. Das folgende Beispiel zeigt, dass der Mirror zu 47% synchronisiert ist, dann 91%, und schließlich zu 100% synchronisiert, wenn der Mirror vollständig ist.
    [root@doc-07 log]# lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog     47.00
    [root@doc-07 log]# lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog     91.00   
    [root@doc-07 ~]#  lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog    100.00
    
    Der Abschluss der Mirror-Erstellung wird im Systemprotokoll vermerkt:
    May 10 14:52:52 doc-07 [19402]: Monitoring mirror device vg001-mirrorlv for events
    May 10 14:55:00 doc-07 lvm[19402]: vg001-mirrorlv is now in-sync
    
  8. Sie können lvs zusammen mit den -o +devices-Optionen verwenden, um die Konfiguration des Mirrors anzuzeigen, z.B. welche Geräte die Mirror-Standbeine stellen. Wie Sie sehen, besteht der logische Datenträger in diesem Beispiel aus zwei linearen Images und einer Protokolldatei.
    [root@doc-07 ~]# lvs -a -o +devices
      LV                  VG         Attr   LSize  Origin Snap%  Move Log           Copy%  Convert Devices                                  
      mirrorlv            vg001      mwi-a-  3.91G                    mirrorlv_mlog 100.00         mirrorlv_mimage_0(0),mirrorlv_mimage_1(0)
      [mirrorlv_mimage_0] vg001      iwi-ao  3.91G                                                 /dev/xvdb1(1)                            
      [mirrorlv_mimage_1] vg001      iwi-ao  3.91G                                                 /dev/xvdb2(1)                            
      [mirrorlv_mlog]     vg001      lwi-ao  4.00M                                                 /dev/xvdc1(0)
    
    Sie können die seg_pe_ranges-Option des lvs-Befehls verwenden, um das Daten-Layout anzuzeigen. Mithilfe dieser Option können Sie sich vergewissern, dass Ihr Layout einwandfrei redundant ist. Die Ausgabe dieses Befehls zeigt PE-Bereiche in demselben Format an, das die lvcreate- und lvresize-Befehle als Eingabe akzeptieren.
    [root@doc-07 ~]# lvs -a -o +seg_pe_ranges --segments
      PE Ranges                                      
      mirrorlv_mimage_0:0-999 mirrorlv_mimage_1:0-999
      /dev/xvdb1:1-1000                              
      /dev/xvdb2:1-1000                              
      /dev/xvdc1:0-0
    

Anmerkung

Informationen über die Wiederherstellung nach dem Ausfall eines der Standbeine eines gespiegelten LVM-Datenträgers finden Sie in Abschnitt 6.3, »Wiederherstellung beim Ausfall eines LVM-Mirrors«.