--- title: "Перестройка дискового массива" title_bar: 1 icon: "tasks" tags: author: "digital-freak.ru" description: "" keywords: "" --- | ## Исходная диспозиция Имеем следующую иерархию каталогов в `/var` для хранения резервных копий: ``` /var ├── archives │   ├── bacula-nfs │   ├── bacula-sd │   │   ├── clients │   │   └── servers │   │   ├── 1c │   │   ├── booker │   │   └── srv03 │   ├── data4g │   │   └── bacula-sd │   │      ├── catalog │   │      └── storage │   └── nfs │   └── pm3 │   └── dump ... ``` Где `/var/archives` - точка монтирования `/dev/md2`, а `/var/archives/data4g` - точка монтирования `/dev/mapper/arch1--vg-data4g` (`/dev/arch1-vg/data4g`). Каталоги `/var/archives/bacula-nfs`, `/var/archives/nfs` и `/var/archives/nfs/pm3` экспортируются по NFSv3. ## Конечный результат Необходимо перенести данные с `/dev/md2` на LVM в группу томов `arch1-vg` и объединить с данными из `/dev/arch1-vg/data4g` на логическом томе `arch` с сохранением иерархии каталогов. Точкой монтирования для `/dev/arch1-vg/arch` становится `/var/archive`. ## Задачи по пересборке дискового массива на хранилище резервных копий ### Подготовка логического тома на новых дисках - Создать том на весь доступный объём `/dev/md4` в группе томов `arch1-vg` ```shell # lvcreate -l100%FREE arch1-vg -n arch # mkfs.ext4 /dev/arch1-vg/arch # mkdir -p /var/arch1 # echo "/dev/mapper/arch1--vg-arch /var/arch1 ext4 defaults 0 2" >> /etc/fstab # mount /var/arch1 ``` ### Перенос данных на новый том - Остановить сервисы: - NFS: ```shell # service portmap stop # service nfs-kernel-server stop ``` - bacula-sd: ```shell # service bacula-sd stop ``` - Перемонтировать `/dev/md2` и `/dev/mapper/arch1--vg-data4g` в режиме read-only: ```shell # mount -o remount,ro /var/archives/data4g # mount -o remount,ro /var/archives ``` - Скопировать содержимое `/var/archives` в `/var/arch1`: ```shell # cp -a /var/archives/* /var/arch1/ ``` и проверить результат. - Размонтировать `/dev/md2`, `/dev/mapper/arch1--vg-data4g` и `/dev/mapper/arch1--vg-arch`: ```shell # umount /var/archives/data4g # umount /var/archives # umount /var/arch1 ``` внести изменения в файл `/etc/fstab`: ```shell #/dev/md2 /var/archives ext4 defaults 0 2 #/dev/mapper/arch1--vg-data4g /var/archives/data4g ext4 defaults 0 2 /dev/mapper/arch1--vg-arch /var/archives ext4 defaults 0 2 ``` и смонтировать `/dev/mapper/arch1--vg-arch` в новое место: ```shell # mount /var/archives ``` - Запустить сервисы: - NFS: ```shell # service portmap start # service nfs-kernel-server start ``` - bacula-sd: ```shell # service bacula-sd start ``` и проверить их работу. - Перезагрузить сервер. Проверить работу сервисов. ## Удаление старых сущностей Осталось избавиться от нунужных компонентов: том `data4g` в группе томов `arch1-vg` и массив `/dev/md2`. ### Удаление логического тома Так как на предыдущем шаге логический том `data4g` был размонтирован, то его можно просто удалить из группы томов: ```shell # lvremove /dev/arch1-vg/data4g ``` ### Удаление массива `md2` Для начала смотрим, какие устройства входят в состав массива: ```shell # mdadm --detail /dev/md2 /dev/md2: Version : 1.2 Creation Time : Fri Nov 22 15:48:36 2013 Raid Level : raid1 Array Size : 2930133824 (2794.39 GiB 3000.46 GB) Used Dev Size : 2930133824 (2794.39 GiB 3000.46 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Mon Apr 1 09:02:52 2024 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : arch1:2 (local to host arch1) UUID : 446cdac4:c3ab0a6e:c7e22a46:cf1f7af0 Events : 7284 Number Major Minor RaidDevice State 2 8 33 0 active sync /dev/sdc1 1 8 49 1 active sync /dev/sdd1 ``` В конце вывода видим список компонентов массива. В нашем случае это `/dev/sdc1` и `/dev/sdd1`. Для удаления массива выполняем следующие команды: ```shell # mdadm --remove /dev/md2 # mdadm --zero-superblock /dev/sdc1 /dev/sdd1 ``` Удаляем упоминание `/dev/md2` из конфигурационного файла `/etc/mdadm/mdadm.conf`: ```shell ARRAY /dev/md0 metadata=0.90 UUID=6e31ab6f:389c56dd:a4db64c1:9b31be6c ARRAY /dev/md1 metadata=1.2 name=arch1:1 UUID=8ab6160c:0db47821:db744ff9:a5725158 #ARRAY /dev/md2 metadata=1.2 name=arch1:2 UUID=446cdac4:c3ab0a6e:c7e22a46:cf1f7af0 #ARRAY /dev/md3 metadata=1.2 name=arch1:3 UUID=e0d7b2d7:b2ae67fc:ca4c0c19:cc3e380a ``` И обновляем конфигурацию mdadm в образе initramfs: ```shell # update-initramfs -u ```