Постоянное изменение владельца (или группы) объема LVM


9

Как я могу навсегда изменить владельца (или хотя бы группу) тома LVM?

Я решил, что должен использовать udev, но я не знаю, как должно выглядеть правило?

Допустим, я хочу изменить владельца LVM / диска на виртуальный ящик пользователя / группы, как бы я это сделал?


О какой ОС ты говоришь? Какой LVM (ОС или Veritas?)
Нильс

Ответы:


14

В Debian (и, надеюсь, в вашем дистрибутиве) все метаданные LVM уже загружены в udev (по некоторым правилам в /lib/udev/rules.d). Таким образом, вы можете использовать файл правил следующим образом:

$ cat /etc/udev/rules.d/92-local-oracle-permissions.rules 
ENV{DM_VG_NAME}=="vgRandom" ENV{DM_LV_NAME}=="ora_users_*" OWNER="oracle"
ENV{DM_VG_NAME}=="vgRandom" ENV{DM_LV_NAME}=="ora_undo_*"  OWNER="oracle"
ENV{DM_VG_NAME}=="vgSeq"    ENV{DM_LV_NAME}=="ora_redo_*"  OWNER="oracle"

Вы можете использовать udevadm, чтобы узнать, на каких вещах вы можете основывать свои правила udev. Все E:строки можно найти в ENV в udev, например, E: DM_LV_NAME=ora_dataстрока соответствует одному из приведенных выше правил:

# udevadm info --query=all --name /dev/dm-2 
P: /devices/virtual/block/dm-2
N: dm-2
L: -100
S: block/253:2
S: mapper/vgRandom-ora_data
S: disk/by-id/dm-name-vgRandom-ora_data
S: disk/by-id/dm-uuid-LVM-d6wXWIzc7xWJkx3Tx3o4Q9huEG1ajakYr0SLSl5as3C6RoydA66sgNHxBZdpem89
S: disk/by-uuid/787651c2-e4c7-40e2-b0fc-1a3978098dce
S: vgRandom/ora_data
E: UDEV_LOG=3
E: DEVPATH=/devices/virtual/block/dm-2
E: MAJOR=253
E: MINOR=2
E: DEVNAME=/dev/dm-2
E: DEVTYPE=disk
E: SUBSYSTEM=block
E: DM_UDEV_PRIMARY_SOURCE_FLAG=1
E: DM_NAME=vgRandom-ora_data
E: DM_UUID=LVM-d6wXWIzc7xWJkx3Tx3o4Q9huEG1ajakYr0SLSl5as3C6RoydA66sgNHxBZdpem89
E: DM_SUSPENDED=0
E: DM_UDEV_RULES=1
E: DM_VG_NAME=vgRandom
E: DM_LV_NAME=ora_data
E: DEVLINKS=/dev/block/253:2 /dev/mapper/vgRandom-ora_data /dev/disk/by-id/dm-name-vgRandom-ora_data /dev/disk/by-id/dm-uuid-LVM-d6wXWIzc7xWJkx3Tx3o4Q9huEG1ajakYr0SLSl5as3C6RoydA66sgNHxBZdpem89 /dev/disk/by-uuid/787651c2-e4c7-40e2-b0fc-1a3978098dce /dev/vgRandom/ora_data
E: ID_FS_UUID=787651c2-e4c7-40e2-b0fc-1a3978098dce
E: ID_FS_UUID_ENC=787651c2-e4c7-40e2-b0fc-1a3978098dce
E: ID_FS_VERSION=1.0
E: ID_FS_TYPE=ext4
E: ID_FS_USAGE=filesystem
E: FSTAB_NAME=/dev/mapper/vgRandom-ora_data
E: FSTAB_DIR=/opt/oracle/oracle/oradata
E: FSTAB_TYPE=ext4
E: FSTAB_OPTS=noatime
E: FSTAB_FREQ=0
E: FSTAB_PASSNO=3

Кроме того, вы можете сопоставить атрибуты sysfs в ATTR (только для устройства) или ATTRS (для родителей). Вы можете увидеть все атрибуты, как это:

# udevadm info --attribute-walk --name /dev/dm-2 

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/virtual/block/dm-2':
    KERNEL=="dm-2"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{range}=="1"
    ATTR{ext_range}=="1"
    ATTR{removable}=="0"
    ATTR{ro}=="0"
    ATTR{size}=="41943040"
    ATTR{alignment_offset}=="0"
    ATTR{discard_alignment}=="0"
    ATTR{capability}=="10"
    ATTR{stat}=="36383695        0 4435621936 124776016 29447978        0 3984603551 342671312        0 191751864 467456484"
    ATTR{inflight}=="       0        0"

Хотя такое сопоставление более полезно для не виртуальных устройств (например, вы получите много выходных данных, если попробуете его на / dev / sda1).


0

Беглый взгляд на документацию udev и существующие правила в моей системе, приведенное ниже правило (непроверенное) должно идентифицировать конкретный логический том, используя dmsetupпрограмму для получения информации о томе. Замените ggggggggUUID группы томов ( vgdisplay VG_NAME) и lllllllUUID логического тома ( lvdisplay VG_NAME/LV_NAME) или выполните dmsetupкоманду вручную, чтобы найти UUID.

SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", \
PROGRAM=="dmsetup info -c --noheadings -o uuid", \
RESULT=="LVM-ggggggggllllllll", \
OWNER=="letmebe", GROUP="vmusers", MODE="0660"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.