2015-02-18 2 views
1

lsblk обеспечивает выход в этом fornat:Карта объема LVM в физический объем

NAME      MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 
sr0       11:0 1 1024M 0 rom 
sda       8:0 0 300G 0 disk 
sda1       8:1 0 500M 0 part /boot 
sda2       8:2 0 299.5G 0 part 
vg_data1-lv_root (dm-0) 253:0 0 50G 0 lvm/
vg_data2-lv_swap (dm-1) 253:1 0 7.7G 0 lvm [SWAP] 
vg_data3-LogVol04 (dm-2) 253:2 0 46.5G 0 lvm 
vg_data4-LogVol03 (dm-3) 253:3 0 97.7G 0 lvm /map1 
vg_data5-LogVol02 (dm-4) 253:4 0 97.7G 0 lvm /map2 
sdb       8:16 0 50G 0 disk 

для установленного объема говорят/map1 как я непосредственно получить физический объем, связанный с ним. Есть ли какая-либо прямая команда для получения информации?

ответ

2

Мне нужно подчеркнуть, что нет прямой связи между точкой монтирования (логическим томом) и физическим томом в LVM. Это одна из целей его проектирования.

Однако вы можете перемещать ассоциации между логическим томом, группой томов и физическими томами, назначенными этой группе. Однако это только говорит вам: данные хранятся на одном из этих физических томов, но не где именно.

Я не мог найти команду, которая может производить вывод напрямую. Однако вы можете подправлять что-то с помощью mount, lvdisplay, vgdisplay и awk|sed:

mp=/mnt vgdisplay -v $(lvdisplay $(mount | awk -vmp="$mp" '$3==mp{print $1}') | awk '/VG Name/{print $3}') 

Я использую переменные окружения mp передать точку монтирования к команде. (Вы должны выполнить команду как корень или с использованием sudo)

Для моего тест-сценарий выводит:

... 
    --- Volume group --- 
    VG Name    vg1 
    System ID    
    Format    lvm2 
    Metadata Areas  2 
    Metadata Sequence No 2 
    VG Access    read/write 
    VG Status    resizable 
    ... 
    VG Size    992.00 MiB 
    PE Size    4.00 MiB 
    Total PE    248 
    Alloc PE/Size  125/500.00 MiB 
    Free PE/Size  123/492.00 MiB 
    VG UUID    VfOdHF-UR1K-91Wk-DP4h-zl3A-4UUk-iB90N7 

    --- Logical volume --- 
    LV Path    /dev/vg1/testlv 
    LV Name    testlv 
    VG Name    vg1 
    LV UUID    P0rgsf-qPcw-diji-YUxx-HvZV-LOe0-Iq0TQz 
    ... 
    Block device   252:0 

    --- Physical volumes --- 
    PV Name    /dev/loop0  
    PV UUID    Qwijfr-pxt3-qcQW-jl8q-Q6Uj-em1f-AVXd1L 
    PV Status    allocatable 
    Total PE/Free PE 124/0 

    PV Name    /dev/loop1  
    PV UUID    sWFfXp-lpHv-eoUI-KZhj-gC06-jfwE-pe0oU2 
    PV Status    allocatable 
    Total PE/Free PE 124/123 

Если вы хотите, чтобы отобразить физические тома вы могли бы трубные результаты из выше команды для sed:

above command | sed -n '/--- Physical volumes ---/,$p' 
+0

Но lvdisplay предоставляет только информацию о логическом томе, не отображает физическое имя тома –

+0

@NidaSahar Вы правы. Для получения желаемых результатов потребовалось больше внимания. Обновлен мой ответ. – hek2mgl

3

Нет прямой команды, чтобы показать эту информацию для монтирования. Вы можете запустить

lvdisplay -m 

Который покажет, какие физические объемы в настоящее время используется логического тома.

Помните, что нет такой вещи, как прямая связь между логическим томом и физическим томом. Логические тома связаны с группами томов. Группы томов имеют пул физических томов, по которым они могут распространять любую группу томов. Если вы хотите всегда знать, что данное лв на данный р, вы должны ограничить ВГ только имея, что один р. Это довольно скучает. Вы можете использовать pvmove, чтобы вытолкнуть пределы с pv (иногда полезно для обслуживания), но вы не можете остановить создание новых экстентов на нем, если логические тома расширены или созданы.

Относительно того, почему нет такой потенциально полезной команды ...

LVM не ZFS. ZFS - это полная система управления хранилищем и файловой системой, управляющая хранилищем (на нескольких уровнях абстракции) и установка файловых систем. LVM, напротив, является всего лишь одним слоем виртуальной файловой системы Linux. Он обеспечивает уровень абстракции поверх физических устройств хранения и не делает предположений о том, как используются логические тома.

0

Оставляя Grep/AWK/вырезать/все, что вам, это показывает, какие ПВС каждый LV фактически использует:

lvs -o +devices 

Вы получите отдельную строку для каждого PV, используемого в данной LV, так если LV имеет экстенты на трех PV, вы увидите три строки для этого LV. Последовательность узлов устройства PV сопровождается начальным масштабом (я думаю) данных о том, что PV в круглых скобках.

Смежные вопросы