mdadm поддерживает dealloc.
commit=sec
время, файловая система синхронизирует свои данные и метаданные. Установка этого к 0 имеет тот же эффект как использование значения по умолчанию 5.
Таким образом, я не получаю ссылку между mdadm и commit=0 в Вашем вопросе?
Что касается LVM в растяжке Debian (9.0), а именно 2.02.168-2, это
Можно выполнить копирование логического тома между группами томов с помощью
комбинация vgmerge
, lvconvert
и vgsplit
. Так как переезд
комбинация копии и удаления, это также будет работать для перемещения.
Кроме того, вы можете использовать pvmove
, чтобы просто переместить громкость.
Полный автономный пример сеанса с использованием устройств цикла и
lvconvert
следует.
Резюме: создаем группу томов vg1
с логическим томом lv1
, и vg2
с lv2
, и сделайте копию lv1
в vg2
.
Создание файлов.
truncate pv1 --size 100MB
truncate pv2 --size 100MB
Настройка устройств цикла для файлов.
losetup /dev/loop1 pv1
losetup /dev/loop2 pv2
Создание физических томов на кольцевых устройствах (инициализация устройств цикла для использование LVM).
pvcreate /dev/loop1 /dev/loop2
Создание групп томов vg1 и vg2 в /dev/loop1 и /dev/loop2 соответственно.
vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2
Создание логических томов lv1 и lv2 на vg1 и vg2 соответственно.
lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2
Создание файловых систем ext4 на lv1 и lv2.
mkfs.ext4 -j /dev/vg1/lv1
mkfs.ext4 -j /dev/vg2/lv2
При желании напишите что-нибудь на lv1, чтобы позже проверить, была ли копия правильно создано. Сделать vg1 неактивным.
vgchange -a n vg1
Выполните команду слияния в тестовом режиме. При этом vg1 объединяется в vg2.
vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1
И тогда по-настоящему.
vgmerge -A y -l -v vg2 vg1
Затем создайте зеркальную пару RAID 1 из lv1
с помощью lvconvert
. Тем
Аргумент dest-pv
говорит lvconvert
сделать зеркальную копию
на /dev/loop2
.
lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2
Затем разделите зеркало. Новая РН теперь lv1_copy
.
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
Сделать vg2/lv1
неактивным.
lvchange -a n /dev/vg2/lv1
Затем (режим тестирования)
vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1
Для реального
vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1
Результирующий вывод:
lvs
[...]
lv1 vg1 -wi-a----- 12.00m
lv1_copy vg2 -wi-a----- 12.00m
lv2 vg2 -wi-a----- 12.00m
ПРИМЕЧАНИЯ:
1) Большинство из этих команд необходимо будет выполнить от имени root.
2) При дублировании названий логических томов в
две томные группы, vgmerge
, откажутся продолжать.
3) При слиянии логические тома в vg1
должны быть неактивными. А при разделении логические тома в vg2
, принадлежащие vg1
, должны быть неактивными. В нашем случае это lv1
.
Группа объема состоит из целых физических томов. Физический том состоит из многих степеней (степень обычно - 4 МБ); каждая степень может принадлежать различному логическому тому. Для передачи логического тома другой группе Вы не можете просто передать степени, потому что это могло бы разделить физический том между источником VG и целевым VG.
То, что можно сделать, передать один или несколько PVs из источника VG к целевому VG, с vgsplit
команда. Можно указать, какой PVs Вы хотите передать, или который LV (но только по одному). При определении LV этого и другого LVs в источнике, VG должен идти отдельный PVs. Целевой VG будет создан, если никакой VG не будет существовать с указанным именем.
vgsplit -n source_group/volume_to_copy source_group target_group
vgsplit source_group target_group /dev/sdy99 /dev/sdz99
Вы, возможно, должны использовать pvmove
сначала для принятия мер к логическим томам Вы хотите переместиться для хождения отдельного PVs.
Если Вы означали сохранять физические границы VG и перемещать данные, нет никакого встроенного инструмента, но Вы могли заставить зеркало затем удалить оригинал.
Ofreceré lo mío:
umount /somedir/
lvdisplay /dev/vgsource/lv0 --units b
lvcreate -L 12345b -n lv0 vgtarget
dd if=/dev/vgsource/lv0 of=/dev/vgtarget/lv0 bs=1024K conv=noerror,sync status=progress
mount /dev/vgtarget/lv0 /somedir/
si todo está bien, quita la fuente
lvremove vgsource/lv0
Точный ответ на этот вопрос: :«Нет, невозможно (логически)переместить логический том (LV )из одной группы томов (VG1 )в другой (VG2 ). Данные должны быть физически скопированы."
Причина :Данные логического тома физически хранятся на блочных устройствах (дисках, разделах ), назначенных определенной группе томов. Перемещение логического тома из VG1, состоящего из /dev/sda
и /dev/sdb
, в VG2, состоящего из /dev/sdc
, потребует перемещения данных из /dev/sda
и/или /dev/sdb
в /dev/sdc
, которая является операцией физического копирования между по меньшей мере двумя блочными устройствами (или разделами ).
П.С. Если бы все данные LV хранились на физическом томе, который можно было бы полностью исключить из VG1, то этот физический том можно было бы присвоить VG2. Но тогда это будет перемещение физического тома из одной группы томов в другую, а не перемещение логического тома.