ใน Red Hat Enterprise Linux ตั้งแต่ version 4.5 ขึ้นไปได้มี feature ใหม่ที่สามารถทำการ implement LVM ให้สามารถใช้งานแบบ HA LVM ได้โดยไม่ต้องใช้ CLVM (อยู่ใน GFS) เข้ามาช่วย

ในความเป็นจริงแล้วการใช้งาน LVM นั้นจะต้องมีโหนดใดโหนดหนึ่งเท่านั้นที่สามารถใช้งานได้ ถ้ามีโหนดมากกว่าหนึ่งโหนดเข้าไป access ข้อมูลใน VG เดียวกันจะทำให้เกิด metadata corrupt ขึ้นมา ดังนั้น HA LVM เป็นเพียงการช่วยให้เราสามารถใช้งาน VG เดิมได้ในตอนที่ เครื่องที่มี VG นั้นอยู่เกิด down ไป ในเรื่องของการตรวจสอบการทำงานของ VG นั้นจะเป็นหน้่าที่ของ rgmanager เพื่อให้ VG ใด VG หนึ่ง active เพียง VG เดียว

เอ้อ ลืมบอกไปว่าการ configure HA LVM นี้จะต้องให้ 1 VG มี 1 LV ที่ทำ HA LVM เท่านั้น เพราะว่าถ้ามีหลาย LV อาจจะทำให้เกิดการแย่งกัน update metadata ซึ่งจะทำให้เกิด metadata corrupt ขึ้นได้ อีกอย่าง อย่า!! ทำการ active VG เดียวกันพร้อมกันทั้ง 2 เครื่องโดยให้ Active LV คนละตัวกัน ถ้าคิดว่าทำไมมันยุ่งยากอย่างงี้ลองไปศึกษา CLVM แทนดูนะครับ เพราะว่าเจ้าตัวนี้ไม่ต้องมาคอนฟงคอนฟิกให้เสียเวลา

ในการติดตั้งใช้งาน HA LVM นี้สิ่งที่ต้องใช้มี เครื่อง 2 เครื่อง และ SAN หรือ NAS ที่เป็น Shared storage สำหรับให้เครื่องทั้งสองเข้าไปใช้งาน HDD ร่วมกันได้ ซึ่งก็เป็น concept เดียวกับ HA Cluster ทั้วไปสามารถอ่านเพิ่มเติมได้ที่ Linux Cluster Concept [Fail-Over and Load-Balancing Cluster]

การ set up LVM Failover นั้นสามารถที่จะทำตามขั้นตอนข้างล่างดังต่อไปนี้

1. สร้าง logical volume และ filesystem โดยที่ต้องมีเพียง 1 logical volume ที่ถูกอนุญาติให้ใช้งานได้ใน volume group ที่ทำ HA LVM ดังตัวอย่าง

#pvcreate /dev/sd[cde]1
#vgcreate <ชื่อ volume group> /dev/sd[cde]1
#lvcreate -L <ขนาดของ logical volume> -n <ชื่อ logical volume> <ชื่อ volume group>
#mkfs.ext3 /dev/<ชื่อ volume group>/<ชื่อ logical volume>  

2. แก้ไขไฟล์ /etc/cluster/cluster.conf เพื่อเพิ่ม logical volume ในส่วนของ resource manager section ดังตัวอย่างด้านล่างนี้ หรือ สามารถใช้คำสั่ง system-config-cluster หรือใช้ Conga GUI.

<rm>
  <failoverdomains>
    <failoverdomain name="FD" ordered="1" restricted="0">
      <failoverdomainnode name="cluster-lvm-01" priority="1"/>
      <failoverdomainnode name="cluster-lvm-02" priority="2"/>
    </failoverdomain>
  </failoverdomains>
  <resources>
    <lvm name="lvm" vg_name="<ชื่อ volume group>" lv_name="<ชื่อ logical volume>"!  />
    <fs name="FS" device="/dev/<ชื่อ volume group>/<ชื่อ logical volume>"
force_fsck="0" force_unmount="1" fsid="64050" fstype="ext3"
mountpoint="/mnt" options="" self_fence="0"/>
  </resources>
  <service autostart="1" domain="FD" name="serv" recovery="relocate">
    <lvm ref="lvm"/>
    <fs ref="FS"/>
  </service>
</rm>

3.แก้ไข volume_list ที่อยู่ในไฟล์ /etc/lvm/lvm.conf. ให้ใส่ชื่อของ volume group, locking_type ให้เซ็ตเป็น 1 และ
ชื่อเครื่องที่มีอยู่ในไฟล์ /etc/cluster/cluster.conf โดยใส่ @ นำหน้าชื่อเครื่อง ดังตัวอย่างด้านล่าง:

volume_list = [ "VolGroup00", "@cluster-lvm-01" ]

ข้อควรระวัง: volume_list จะต้องเซ็ตเฉพาะ VG ที่จะใช้งานเท่านั้นไม่อย่างงั้นแล้วมันจะถูก activate ทั้งหมดที่เว็ตไว้

4.Update initrd ทุกเครื่องที่ทำ cluster ด้วยคำสั่งด้านล่าง:

#new-kernel-pkg –mkinitrd –initrdfile=/boot/initrd-`uname -r`.img –install `uname -r` –make-default

5.Reboot เครื่อง

ท้ายสุดการ configure HA VLM นี้ไม่ได้แก้ไขปัญหาได้ครบถ้วนหมดจด ถ้าเกิดปัญหาจากการเชื่อมต่อระหว่างเครื่อง server กับ SAN หรือ NAS แล้วการ configure ครั้งนี้อาจจะไม่เกิดผลเลยก็ได้ เนื่องจาก HA LVM ไม่มี feature ที่คอยจัดการด้าน Connectivity ของ SAN/NAS แต่อย่างไรปัญหาทุกอย่างก็ย่อมมีทางแก้ไขแน่นอน 555 เพื่อป้องกันการเกิดปัญหานี้ให้ใช้ feature multipath เข้ามาช่วยนั้นเอง ก็ลองไปอ่านเพิ่มเติมดูนะที่ ติดตั้ง device mapper multipathing บน SAN/NAS