объедините 2 LVMs и имейте данные и на той же Volume Group без потери данных

Если у Вас есть a readlink это поддерживает -e переключатель для канонизации пути, я предлагаю, чтобы Вы препятствовали тому, чтобы Ваши пользователи использовали mv в целом и запись Ваше собственное mv как замена. Что-то вроде этого, возможно:

#!/bin/bash

[ $# -ne 2 ] && echo "Only a two-argument mv is allowed" && exit 1

src="$1"
dst="$2"

srcdir="$(readlink -e "$(dirname "$src")")"
dstdir="$(readlink -e "$(dirname "$dst")")"

[ "$srcdir" != "$dstdir ] && echo "Cross-directory mv is forbidden" && exit 2
[ "$(basename "$src")" = "$(basename "$dst")" ] && echo "Source and destination are the same. Nothing to do." && exit 3

cp -p "$src" "$dst" && rm -f "$src"

Обратите внимание, что это (очевидно), заставит inode число перемещенного файла изменяться в отличие от постоянного клиента mv.

3
17.03.2015, 15:05
1 ответ

ЕСЛИ логические тома находятся в разных группах томов, и вы хотите их объединить, используйте команду vgmerge :

Сначала деактивируйте группу томов, которая будет объединена в другую:

[root@host ~]# vgchange -a n vg_to_be_merged

После этого проверьте, нет ли несогласованности, которая помешает вам объединиться:

[root@host ~]# vgmerge -t -v dest_vg vg_to_be_merged

Теперь выполните объединение по-настоящему:

[root@host ~]# vgmerge -v dest_vg vg_to_be_merged
    Checking for volume group "dest_vg"
    Checking for volume group "vg_to_be_merged"
    Archiving volume group "vg_to_be_merged" metadata (seqno 2).
    Archiving volume group "dest_vg" metadata (seqno 13).
    Writing out updated volume group
    Creating volume group backup "/etc/lvm/backup/dest_vg" (seqno 14).
  Volume group "vg_to_be_merged" successfully merged into "dest_vg"

Однако, слияние томов LVM не будет иметь никакого волшебного трюка, поскольку поверх них есть файловые системы, и потребуется много размышлений с перемещением данных и изменением размера.

Дополнительная литература:

2
27.01.2020, 21:27

Теги

Похожие вопросы