ฉันจะเปลี่ยนความเป็นเจ้าของอย่างถาวร (หรืออย่างน้อยกลุ่ม) ของปริมาณ LVM ได้อย่างไร
ฉันคิดว่าฉันต้องใช้ udev แต่ฉันไม่รู้ว่ากฎควรมีลักษณะอย่างไร
สมมติว่าฉันต้องการเปลี่ยนความเป็นเจ้าของของ LVM / ดิสก์เป็น virtualbox ผู้ใช้ / กลุ่มฉันจะทำอย่างไร
ฉันจะเปลี่ยนความเป็นเจ้าของอย่างถาวร (หรืออย่างน้อยกลุ่ม) ของปริมาณ LVM ได้อย่างไร
ฉันคิดว่าฉันต้องใช้ udev แต่ฉันไม่รู้ว่ากฎควรมีลักษณะอย่างไร
สมมติว่าฉันต้องการเปลี่ยนความเป็นเจ้าของของ LVM / ดิสก์เป็น virtualbox ผู้ใช้ / กลุ่มฉันจะทำอย่างไร
คำตอบ:
บน Debian (และหวังว่า distro ของคุณด้วย) ข้อมูลเมตา 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)
จากภาพรวมอย่างรวดเร็วที่เอกสาร udev และกฎที่มีอยู่ในระบบของฉันกฎด้านล่าง (ยังไม่ได้ทดสอบ) ควรระบุโลจิคัลวอลุ่มเฉพาะโดยใช้dmsetup
โปรแกรมเพื่อดึงข้อมูลปริมาณ แทนที่gggggggg
ด้วย UUID ของกลุ่มวอลุ่ม ( vgdisplay VG_NAME
) และlllllll
โดย UUID ของโลจิคัลวอลุ่ม ( 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"