More at http://christophe.varoqui.free.fr/wiki/wakka.php?wiki=FAQ 1. How to set up System-on-multipath ? ====================================== prerequisite : udev and multipath-tools installed here are the steps on a Debian SID system : * add dm-mpath and dm-multipath to /etc/mkinitrd/modules * copy $tools_dir/multipath/0[12]_* to /etc/mkinitrd/scripts * define a friendly alias for your multipathed root disk (in /etc/multipath.conf). Example : "system" * enable busybox in /etc/mkinitrd/mkinitrd.conf and set ROOT to any valid block-device (but not a /dev/dm-* one, due to an mkintrd misbelief that all dm-* are managed by LVM2) * run mkinitrd * in /boot/grub/menu.lst, define the root= kernel parameter Example : root=/dev/system1 * modify /etc/fstab to reference /dev/system* partitions At reboot, you should see some info like : path /dev/sda : multipath system ... gpt: 0 slices dos: 5 slices reduced size of partition #2 to 63 Added system1 : 0 70685937 linear /dev/system 63 Added system2 : 0 63 linear /dev/system 7068600 Added system5 : 0 995967 linear /dev/system 70686063 ... 2. How does it compare to commercial product XXX ? ================================================== Here are a few distinctive features : * you can mix HBA models, even different vendors, different speed ... * you can mix storage controllers on your SAN, and access them all, applying different path grouping policy * completely event-driven model : no administration burden if you accept the default behaviours * extensible : you can plug your own policies if the available ones don't fill your needs * supports root FS on multipathed SAN * free, open-source software 3. LVM2 doesn't see my multipathed devices as PV, what's up ? ============================================================= By default, lvm2 does not consider device-mapper block devices (such as a dm-crypt device) for use as physical volumes. In order to use a dm-crypt device as an lvm2 pv, add this line to the devices block in /etc/lvm/lvm.conf: types = [ "device-mapper", 16 ] If /etc/lvm/lvm.conf does not exist, you can create one based on your current/default config like so: lvm dumpconfig > /etc/lvm/lvm.conf (tip from Christophe Saout) 4. I see a lot of "io_setup failed" message using the directio checker ====================================================================== The directio path checker makes use of the asynchronous I/O API (aio) provided by modern Linux systems. Asynchronous I/O allows an application to submit I/O requests asynchronously and be notified later of their completion status. To allow this, we must allocate an asynchronous I/O context (an object of type aio_context_t) and this task is handled by the io_setup system call. A system wide limit on the number of AIO contexts that may be active simultaneously is imposed via the aio-max-nr sysctl parameter. Once this limit has been reached further calls to io_setup will fail with the error number EAGAIN leading to the "io_setup failed" messages seen for e.g. when running "multipath -ll". To avoid this problem the number of available aio contexts should be increased by setting the aio-max-nr parameter. This can be set on a one-time basis via the /proc file system, for e.g.: # echo 131072 > /proc/sys/fs/aio-max-nr Doubles the number of available contexts from the default value of 65536. To make this setting persistent a line may be added to /etc/sysctl.conf: fs.aio-max-nr = 131072 Consult appropriate application and operating system tuning recommendations for guidance on appropriate values for this parameter.