what is needed for LVM mirroring over two data centers?
we are having two data centers. On each data center site there is a SAN and many different virtual machines whose file systems are running on several LUNs of these SANs.
Per one virtual machine, I have added two LUNs for the basic operating system file system layout. EAch vritual machine has one LUN in the storage of DAta Center A and one LUN of Data Center B. Each LUN is accessible over two HBA's via multipathing. I have made a volume group vg_rootfs, which contains several logical volumes. I have the logical volumes
Name - File System - Mount Point
lv_rootfs - ext3 -/
lv_root - ext3 - /root
lv_tmp - xfs - /tmp
lv_opt - ext3 - /opt
lv_usr - ext3 - /usr
lv_var_log - ext3 - /var/log
lv_var - ext3 - /var
lv_home - ext3 - /home
lv_swap - swap - swap
Then I configured a mirror between the two LUNs, so the LUN on data center A mirrors all it's content to LUN on data center B via the logical volume manager. So I added a mirror to each logical volume via lvconvert. The command
correctly tells me that there are two mirror images, each one on a different LUN.
Then we did some HA tests. First we just removed one of the paths. The command
correctly recognizes that one of the paths has become inactive, but the other still remains active and the OS can work.
Next we just took one of the LUN's away from the virtual machines and that's where the problems began.
After removing one of the LUNs from the system, the operating system is not able to write any files on the file systems anymore and shutdown as well as restarting the virtual machine is not possible until we give the LUN back to the virtual machine.
So I am asking: What do I have to do that the system still works after the storage/LUN on one data center fails? I am currently having the following concerns
- Do I have to use another file system, like a "cluster aware file System", like ofcs2?
- Do I have to create a separate logical volume for the mount point /boot?
- Do I have to setup clustered Logical Volume Manager for this? From my understanding cLVM is not what I want, because cLVM is for making one single LUN available for two hosts. I want to do the opposie. I want to make two Stroage-LUNs available for a single host.