5.5. Создание зеркального логического тома в кластере

Создание зеркального логического тома в кластере осуществляется по тем же правилам, что и на отдельном компьютере. Отличия состоят в том, что в кластере должны работать необходимые кластерные службы, кластер должен обладать кворумом, а тип блокирования в lvm.conf должен разрешать кластерное блокирование. Раздел 5.5, «Создание зеркального логического тома в кластере» содержит примеры создания зеркального тома в кластере.
Далее будет создан зеркальный логический том. Предварительно будет проверено, выполняются ли необходимые кластерные службы.
  1. Чтобы создать общий зеркальный логический том, который будет доступен всем узлам в кластере, на каждом узле необходимо определить нужный тип блокирования в файле lvm.conf.
    # /sbin/lvmconf --enable-cluster
  2. Следующая команда проверит факт выполнения службы clvmd на текущем узле:
    [root@doc-07 ~]# ps auxw | grep clvmd
    root     17642  0.0  0.1 32164 1072 ?        Ssl  Apr06   0:00 clvmd -T20 -t 90
    
    Далее будут показаны сведения о состоянии кластера:
    [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. Убедитесь, что пакет cmirror установлен.
  4. Запустите cmirrord.
    [root@hexample-01 ~]# service cmirrord start
    Starting cmirrord:                                         [  OK  ]
    
  5. Далее будет создано три физических тома. Два будут использоваться для организации зеркала, а на третьем будет храниться журнал зеркала.
    [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. Все три тома будут добавлены в группу vg001.
    [root@doc-07 ~]# vgcreate vg001 /dev/xvdb1 /dev/xvdb2 /dev/xvdc1
      Clustered volume group "vg001" successfully created
    
    Вывод vgcreate демонстрирует, что группа томов является кластерной (атрибут «c»). Команда vgs также может это проверить.
    [root@doc-07 ~]# vgs vg001
      VG       #PV #LV #SN Attr   VSize  VFree
      vg001      3   0   0 wz--nc 68.97G 68.97G
    
  7. В следующем примере будет создан логический том mirrorlv с одним зеркалом из группы vg001. Выделяемые экстенты будут указаны явно.
    [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
    
    С помощью lvs можно наблюдать за прогрессом создания зеркала (столбец Copy%).
    [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
    
    Сообщение об успешном создании зеркала будет зарегистрировано в системном журнале:
    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. Для просмотра структуры зеркала можно выполнить lvs с параметрами -o +devices. В приведенном ниже примере логический том состоит из двух линейных томов и одного журнала.
    [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)
    
    Параметр seg_pe_ranges покажет диапазон физических экстентов.
    [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
    

Примечание

Раздел 6.3, «Восстановление после сбоя зеркала» содержит инструкции по восстановлению зеркала в случае выхода из строя его составляющих.