Hi,

LVM determines list of all block devices from sysfs, and also tries
well-known locations.
That's why I advise to deny LVM to access all devices except what is
explicitly permitted.

Vladislav

15.11.2011 11:51, Ulrich Windl wrote:
> Hi!
> 
> Once again I looked into "vgs" on one of our simpler systems,
> inspecting calls to open(strace -e open vgs 2>&1): 
> open("/proc/devices", O_RDONLY)         = 3 open("/etc/lvm/.cache",
> O_RDONLY)       = 3 open("/dev",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/proc/meminfo",
> O_RDONLY)         = 5 open("/dev/T11_AS_1",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 
> open("/dev/T11_DB_10k", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> 4 open("/dev/T11_DB_BTD", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)
> = 4 open("/dev/T11_DB_FATA",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/VBW_CI",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 
> open("/dev/VBW_DB_10k", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> 4 open("/dev/VBW_DB_BTD", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)
> = 4 open("/dev/VBW_DB_FATA",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/bsg",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/bus",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/bus/usb",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 
> open("/dev/bus/usb/001", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> 4 open("/dev/bus/usb/002", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)
> = 4 open("/dev/bus/usb/003",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 
> open("/dev/bus/usb/004", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> 4 open("/dev/bus/usb/005", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)
> = 4 open("/dev/bus/usb/006",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/cciss",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/cpqhealth",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/cpu",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/disk",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 
> open("/dev/disk/by-id", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> 4 open("/dev/disk/by-path",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 
> open("/dev/disk/by-uuid", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)
> = 4 open("/dev/hpilo", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> 4 open("/dev/input", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 
> open("/dev/input/by-id", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> 4 open("/dev/input/by-path",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/mapper",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/net",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/pts",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/shm",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 open("/dev/sys",
> O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4
> 
> Why are those /sys/block files also opened?
> 
> open("/sys/class/block", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) =
> 3 open("/sys/class/block/cciss!c0d0/dev", O_RDONLY) = 4 
> open("/sys/class/block/cciss!c0d0p1/dev", O_RDONLY) = 4 
> open("/sys/class/block/cciss!c0d0p2/dev", O_RDONLY) = 4 
> open("/sys/class/block/cciss!c0d0p5/dev", O_RDONLY) = 4 
> open("/sys/class/block/cciss!c0d0p6/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-0/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-1/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-2/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-3/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-4/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-5/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-6/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-7/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-8/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-9/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-10/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-11/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdam/dev", O_RDONLY) = 4 
> open("/sys/class/block/sday/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdan/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdap/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdak/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdao/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdat/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdar/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbd/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbe/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbi/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbj/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdaq/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbg/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbm/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdax/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdaz/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdas/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdau/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdaw/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdal/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbo/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbs/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbt/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdav/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbn/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbc/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbp/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdba/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbb/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbf/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbl/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbk/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbq/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbh/dev", O_RDONLY) = 4 
> open("/sys/class/block/sdbr/dev", O_RDONLY) = 4 
> open("/sys/class/block/sr0/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-12/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-13/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-14/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-15/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-16/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-17/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-18/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-19/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-20/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-21/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-22/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-23/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-24/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-25/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-26/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-27/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-28/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-29/dev", O_RDONLY) = 4 
> open("/sys/class/block/loop0/dev", O_RDONLY) = 4 
> open("/sys/class/block/loop1/dev", O_RDONLY) = 4 
> open("/sys/class/block/loop2/dev", O_RDONLY) = 4 
> open("/sys/class/block/loop3/dev", O_RDONLY) = 4 
> open("/sys/class/block/loop4/dev", O_RDONLY) = 4 
> open("/sys/class/block/loop5/dev", O_RDONLY) = 4 
> open("/sys/class/block/loop6/dev", O_RDONLY) = 4 
> open("/sys/class/block/loop7/dev", O_RDONLY) = 4 
> open("/sys/class/block/md0/dev", O_RDONLY) = 4 
> open("/sys/class/block/md1/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-30/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-31/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-32/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-33/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-34/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-35/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-36/dev", O_RDONLY) = 4 
> open("/sys/class/block/md7/dev", O_RDONLY) = 4 
> open("/sys/class/block/md8/dev", O_RDONLY) = 4 
> open("/sys/class/block/md9/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-37/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-38/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-39/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-40/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-41/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-42/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-43/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-44/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-45/dev", O_RDONLY) = 4 
> open("/sys/class/block/md6/dev", O_RDONLY) = 4 
> open("/sys/class/block/md5/dev", O_RDONLY) = 4 
> open("/sys/class/block/dm-47/dev", O_RDONLY) = 4 open("/dev/loop0",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 open("/dev/loop0", O_RDONLY)
> = 4
> 
> To make things worse, devices are opened with "O_DIRECT" now! Why? 
> open("/dev/md0", O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/sdaw",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 open("/dev/sdaw", O_RDONLY)
> = 4 open("/dev/sdaw", O_RDONLY)             = 3 open("/dev/sdaw",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3
> 
> Why is the same file opened multiple times?
> 
> open("/dev/sdbm", O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 
> open("/dev/sdbm", O_RDONLY)             = 4 open("/dev/sdbm",
> O_RDONLY)             = 3 open("/dev/sdbm",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3
> 
> open("/dev/cciss/c0d0", O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 
> open("/dev/cciss/c0d0", O_RDONLY)       = 4 open("/dev/dm-0",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/loop1",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 open("/dev/loop1", O_RDONLY)
> = 4 open("/dev/md1", O_RDONLY|O_DIRECT|O_NOATIME) = 3 
> open("/dev/cciss/c0d0p1", O_RDONLY|O_DIRECT|O_NOATIME) = 3 
> open("/dev/root", O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/loop2",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 open("/dev/loop2", O_RDONLY)
> = 4 open("/dev/cciss/c0d0p2", O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 
> open("/dev/cciss/c0d0p2", O_RDONLY)     = 4 open("/dev/dm-2",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/loop3",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 open("/dev/loop3", O_RDONLY)
> = 4 open("/dev/dm-3", O_RDONLY|O_DIRECT|O_NOATIME) = 3 
> open("/dev/loop4", O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 
> open("/dev/loop4", O_RDONLY)            = 4 open("/dev/dm-4",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/loop5",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 open("/dev/loop5", O_RDONLY)
> = 4 open("/dev/md5", O_RDONLY|O_DIRECT|O_NOATIME) = 3 
> open("/dev/cciss/c0d0p5", O_RDONLY|O_DIRECT|O_NOATIME) = 3 
> open("/dev/dm-5", O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/loop6",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 open("/dev/loop6", O_RDONLY)
> = 4 open("/dev/md6", O_RDONLY|O_DIRECT|O_NOATIME) = 3 
> open("/dev/cciss/c0d0p6", O_RDONLY|O_DIRECT|O_NOATIME) = 3 
> open("/dev/dm-6", O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/loop7",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 3 open("/dev/loop7", O_RDONLY)
> = 4 open("/dev/md7", O_RDONLY|O_DIRECT|O_NOATIME) = 3 
> open("/dev/dm-7", O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/md8",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/dm-8",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/md9",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/dm-9",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/dm-10",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/dev/dm-11",
> O_RDONLY|O_DIRECT|O_NOATIME) = 3 open("/proc/devices", O_RDONLY)
> = 3 open("/proc/misc", O_RDONLY)            = 3 
> open("/dev/mapper/control", O_RDWR)     = 3 open("/proc/devices",
> O_RDONLY)         = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) =
> 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 open("/dev/dm-12",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/dm-12", O_RDONLY)
> = 5 open("/dev/dm-12", O_RDONLY)            = 4 open("/dev/dm-12",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-13",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-14", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-14", O_RDONLY)            = 5 open("/dev/dm-14",
> O_RDONLY)            = 4 open("/dev/dm-14",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-15", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-15", O_RDONLY)            = 5 open("/dev/dm-15",
> O_RDONLY)            = 4 open("/dev/dm-15",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdax",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdax", O_RDONLY)
> = 5 open("/dev/sdax", O_RDONLY)             = 4 open("/dev/sdax",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbn",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbn", O_RDONLY)
> = 5 open("/dev/sdbn", O_RDONLY)             = 4 open("/dev/sdbn",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-16", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-16", O_RDONLY)            = 5 open("/dev/dm-16",
> O_RDONLY)            = 4 open("/dev/dm-16",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-17",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-18", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-18", O_RDONLY)            = 5 open("/dev/dm-18",
> O_RDONLY)            = 4 open("/dev/dm-18",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-19",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-20", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-20", O_RDONLY)            = 5 open("/dev/dm-20",
> O_RDONLY)            = 4 open("/dev/dm-20",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-21", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-21", O_RDONLY)            = 5 open("/dev/dm-21",
> O_RDONLY)            = 4 open("/dev/dm-21",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-22",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-23", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-23", O_RDONLY)            = 5 open("/dev/dm-23",
> O_RDONLY)            = 4 open("/dev/dm-23",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-24", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-24", O_RDONLY)            = 5 open("/dev/dm-24",
> O_RDONLY)            = 4 open("/dev/dm-24",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-25", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-25", O_RDONLY)            = 5 open("/dev/dm-25",
> O_RDONLY)            = 4 open("/dev/dm-25",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-26", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-26", O_RDONLY)            = 5 open("/dev/dm-26",
> O_RDONLY)            = 4 open("/dev/dm-26",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-27", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-27", O_RDONLY)            = 5 open("/dev/dm-27",
> O_RDONLY)            = 4 open("/dev/dm-27",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-28", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-28", O_RDONLY)            = 5 open("/dev/dm-28",
> O_RDONLY)            = 4 open("/dev/dm-28",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/sys/kernel/uevent_seqnum",
> O_RDONLY) = 4 open("/sys/kernel/uevent_seqnum", O_RDONLY) = 4 
> open("/dev/dm-29", O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 
> open("/dev/dm-29", O_RDONLY)            = 5 open("/dev/dm-29",
> O_RDONLY)            = 4 open("/dev/dm-29",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-30",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-31",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sday",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sday", O_RDONLY)
> = 5 open("/dev/sday", O_RDONLY)             = 4 open("/dev/sday",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbo",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-32",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-33",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-34",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-35",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-36",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-37",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-38",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-39",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-40",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-41",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-42",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-43",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-44",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-45",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/dm-47",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdaz",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdaz", O_RDONLY)
> = 5 open("/dev/sdaz", O_RDONLY)             = 4 open("/dev/sdaz",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbp",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbp", O_RDONLY)
> = 5 open("/dev/sdbp", O_RDONLY)             = 4 open("/dev/sdbp",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdak",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdba",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbq",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbq", O_RDONLY)
> = 5 open("/dev/sdbq", O_RDONLY)             = 4 open("/dev/sdbq",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdal",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdal", O_RDONLY)
> = 5 open("/dev/sdal", O_RDONLY)             = 4 open("/dev/sdal",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbb",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbb", O_RDONLY)
> = 5 open("/dev/sdbb", O_RDONLY)             = 4 open("/dev/sdbb",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbr",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbr", O_RDONLY)
> = 5 open("/dev/sdbr", O_RDONLY)             = 4 open("/dev/sdbr",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdam",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdam", O_RDONLY)
> = 5 open("/dev/sdam", O_RDONLY)             = 4 open("/dev/sdam",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbc",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbc", O_RDONLY)
> = 5 open("/dev/sdbc", O_RDONLY)             = 4 open("/dev/sdbc",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbs",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbs", O_RDONLY)
> = 5 open("/dev/sdbs", O_RDONLY)             = 4 open("/dev/sdbs",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdan",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdan", O_RDONLY)
> = 5 open("/dev/sdan", O_RDONLY)             = 4 open("/dev/sdan",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbd",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbd", O_RDONLY)
> = 5 open("/dev/sdbd", O_RDONLY)             = 4 open("/dev/sdbd",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbt",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdao",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdao", O_RDONLY)
> = 5 open("/dev/sdao", O_RDONLY)             = 4 open("/dev/sdao",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbe",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdap",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdap", O_RDONLY)
> = 5 open("/dev/sdap", O_RDONLY)             = 4 open("/dev/sdap",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbf",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbf", O_RDONLY)
> = 5 open("/dev/sdbf", O_RDONLY)             = 4 open("/dev/sdbf",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdaq",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdaq", O_RDONLY)
> = 5 open("/dev/sdaq", O_RDONLY)             = 4 open("/dev/sdaq",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbg",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbg", O_RDONLY)
> = 5 open("/dev/sdbg", O_RDONLY)             = 4 open("/dev/sdbg",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdar",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdar", O_RDONLY)
> = 5 open("/dev/sdar", O_RDONLY)             = 4 open("/dev/sdar",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbh",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbh", O_RDONLY)
> = 5 open("/dev/sdbh", O_RDONLY)             = 4 open("/dev/sdbh",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdas",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbi",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbi", O_RDONLY)
> = 5 open("/dev/sdbi", O_RDONLY)             = 4 open("/dev/sdbi",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdat",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdat", O_RDONLY)
> = 5 open("/dev/sdat", O_RDONLY)             = 4 open("/dev/sdat",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbj",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdau",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdau", O_RDONLY)
> = 5 open("/dev/sdau", O_RDONLY)             = 4 open("/dev/sdau",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbk",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdav",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdav", O_RDONLY)
> = 5 open("/dev/sdav", O_RDONLY)             = 4 open("/dev/sdav",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/dev/sdbl",
> O_RDONLY|O_NONBLOCK|O_NOATIME) = 4 open("/dev/sdbl", O_RDONLY)
> = 5 open("/dev/sdbl", O_RDONLY)             = 4 open("/dev/sdbl",
> O_RDONLY|O_DIRECT|O_NOATIME) = 4 open("/var/lock/lvm/V_VBW_DB_BTD",
> O_RDWR|O_CREAT|O_APPEND, 0777) = 4 open("/dev/dm-19",
> O_RDONLY|O_DIRECT|O_NOATIME) = 5 open("/etc/lvm/backup/VBW_DB_BTD",
> O_RDONLY) = 6 open("/var/lock/lvm/V_T11_DB_BTD",
> O_RDWR|O_CREAT|O_APPEND, 0777) = 4 open("/dev/dm-17",
> O_RDONLY|O_DIRECT|O_NOATIME) = 5 open("/dev/dm-19",
> O_RDONLY|O_DIRECT|O_NOATIME) = 6 open("/etc/lvm/backup/T11_DB_BTD",
> O_RDONLY) = 6 open("/var/lock/lvm/V_VBW_DB_FATA",
> O_RDWR|O_CREAT|O_APPEND, 0777) = 4 open("/dev/md9",
> O_RDONLY|O_DIRECT|O_NOATIME) = 5 open("/dev/dm-17",
> O_RDONLY|O_DIRECT|O_NOATIME) = 6 open("/etc/lvm/backup/VBW_DB_FATA",
> O_RDONLY) = 6 open("/var/lock/lvm/V_VBW_DB_10k",
> O_RDWR|O_CREAT|O_APPEND, 0777) = 4 open("/dev/md8",
> O_RDONLY|O_DIRECT|O_NOATIME) = 5 open("/dev/md9",
> O_RDONLY|O_DIRECT|O_NOATIME) = 6 open("/etc/lvm/backup/VBW_DB_10k",
> O_RDONLY) = 6 open("/var/lock/lvm/V_VBW_CI", O_RDWR|O_CREAT|O_APPEND,
> 0777) = 4 open("/dev/md7", O_RDONLY|O_DIRECT|O_NOATIME) = 5 
> open("/dev/md8", O_RDONLY|O_DIRECT|O_NOATIME) = 6 
> open("/etc/lvm/backup/VBW_CI", O_RDONLY) = 6 
> open("/var/lock/lvm/V_sys", O_RDWR|O_CREAT|O_APPEND, 0777) = 4 
> open("/dev/cciss/c0d0p5", O_RDONLY|O_DIRECT|O_NOATIME) = 5 
> open("/dev/md7", O_RDONLY|O_DIRECT|O_NOATIME) = 6 
> open("/etc/lvm/backup/sys", O_RDONLY)   = 6 
> open("/var/lock/lvm/V_T11_AS_1", O_RDWR|O_CREAT|O_APPEND, 0777) = 4 
> open("/dev/md5", O_RDONLY|O_DIRECT|O_NOATIME) = 5 
> open("/dev/cciss/c0d0p5", O_RDONLY|O_DIRECT|O_NOATIME) = 6 
> open("/etc/lvm/backup/T11_AS_1", O_RDONLY) = 6 
> open("/var/lock/lvm/V_T11_DB_FATA", O_RDWR|O_CREAT|O_APPEND, 0777) =
> 4 open("/dev/md1", O_RDONLY|O_DIRECT|O_NOATIME) = 5 open("/dev/md5",
> O_RDONLY|O_DIRECT|O_NOATIME) = 6 open("/etc/lvm/backup/T11_DB_FATA",
> O_RDONLY) = 6 open("/var/lock/lvm/V_T11_DB_10k",
> O_RDWR|O_CREAT|O_APPEND, 0777) = 4 open("/dev/md0",
> O_RDONLY|O_DIRECT|O_NOATIME) = 5 open("/dev/md1",
> O_RDONLY|O_DIRECT|O_NOATIME) = 6 open("/etc/lvm/backup/T11_DB_10k",
> O_RDONLY) = 6 open("/etc/lvm/.cache", O_RDWR|O_CREAT, 0777) = 4 
> open("/etc/lvm/.cache.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 5
> 
> I also don't know what that lvm cache is intended to useful for, but
> obviously it's not very effective. As everything execpt the local
> disks is using multipath, I wonder how effective a restriction to
> /dev/mapper would be. The other thing is which paths will be
> displayed in vgdisplay -v: I'd like the pretty paths
> (/dev/disk/by-id/dm-name-*) to be displayed, but those are just
> symlinks to the dm files.
> 
> Regards, Ulrich
> 
> 
>>>> Vladislav Bogdanov <[email protected]> schrieb am 15.11.2011
>>>> um 09:21 in
> Nachricht <[email protected]>:
>> 15.11.2011 10:55, Ulrich Windl wrote:
>>> Hi Vladislav,
>>> 
>>> filtering the devices for LVM also was on my mind, but changing
>>> the filter cluster-wide after any configuration change seems too 
>>> error-prone for me. On the other side I couldn't a generic rule
>>> that will match our configuration.
>> 
>> Attached code fragment works for me (I use it in my iscsi-multipath
>> RA).
>> 
>>> 
>>> On your attempts managing priority using "nice": Do you know
>>> about "ionice"? I guess that's closer to what you are looking
>>> for.
>> 
>> I didn't try it. Anyways you have scalability problem if you do not
>> use filtering. Disks are slow...
>> 
>> Best, Vladislav
>> 
> 
> 
> 
> _______________________________________________ Linux-HA mailing
> list [email protected] 
> http://lists.linux-ha.org/mailman/listinfo/linux-ha See also:
> http://linux-ha.org/ReportingProblems

_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to