Определение способа добавления диска
В старых версиях Carbon PL5 для БД биллинга не создавалось отдельного раздела, она располагалась в /mnt/var. Однозначно убедиться какая установка у Вас, Вы можете следующим способом:
Выполните команду
grep '/mnt/db' /etc/fstab
В зависимости от вывода команды, на старых установках в ответ не вернётся ни чего, на новых - строка с параметрами монтирования раздела, например:
- старая установка
[root@vm_old ~]# grep '/mnt/db' /etc/fstab
[root@vm_old ~]# - новая установка
[root@vm_new ~]# grep '/mnt/db' /etc/fstab
UUID=893c80de-0c62-4442-a19a-7a972f2854ff /mnt/db ext4 nodiratime,noatime,async,data=journal 1 2
[root@vm_new ~]#
Добавление диска на новых установках
- Добавьте диск и разметьте раздел по статье документации "Подготовка нового диска"
- Смонтируйте его в директорию /mnt/db/ Допустим имя раздела /dev/sdb1
mkfs.ext4 -L dbfs /dev/sdb1 mkdir /mnt/xdb mount /dev/sdb1 /mnt/xdb/
- Так как переносится весь раздел с базами данных контейнеров. Остановите работу контейнеров и размонтируйте разделы
/etc/init.d/apps stop /etc/init.d/apps destroy
- Перенесите данные со старого раздела на новый
mv /mnt/db/app /mnt/xdb/
- Отмонтируйте временную директорию /mnt/xdb/
umount /mnt/xdb/
- Отмонтируйте старый раздел с БД /dev/sda1
umount /mnt/db
- Поправьте fstab
Найдите уникальный ID (UUID) нового разделаblkid
/dev/sdb1: UUID="62897047-0222-43e3-95e5-16b1b6de2b71" TYPE="ext4"Замените найденный UUID в /etc/fstab для раздела /mnt/db
UUID=51dbd1be-0b6a-41bf-988b-45f4abc4e14b / ext4 nodiratime,noatime,async 1 1 UUID=ad1b02a1-a106-4393-a9fa-2c6bf22be4a6 /app ext4 nodiratime,noatime,async 1 1 UUID=a877ae99-695b-42a0-bcd0-8d7161863e10 /mnt/backup ext4 nodiratime,noatime,async 1 1 UUID=73ffd725-12eb-443b-9042-ac29967b4273 /mnt/db ext4 nodiratime,noatime,async,data=journal 1 1 UUID=791e8fc2-5121-408d-b8c6-2422cd9f1964 /mnt/etc ext4 nodiratime,noatime,async 1 1 UUID=9c8e6f3c-841b-4430-a092-2e92bf937c78 /mnt/var ext4 nodiratime,noatime,async 1 1 UUID=4de5b5c4-06f1-4aec-8ded-c4f0d17e6d00 /mnt/log ext4 nodiratime,noatime,async 1 1 UUID=130f9f67-0157-44fc-9a6c-470af26921c2 none swap sw 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
То есть, вместо такой строки:
UUID=73ffd725-12eb-443b-9042-ac29967b4273 /mnt/db ext4 nodiratime,noatime,async,data=journal 1 1
должна получиться такая:
UUID=62897047-0222-43e3-95e5-16b1b6de2b71 /mnt/db ext4 nodiratime,noatime,async,data=journal 1 1
- Смонтируйте раздел /mnt/db, команда mount сама поймёт по конфигурации fstab, что нужно подключить раздел /dev/sdb1
mount /mnt/db
- Восстановите точки монтирования в контейнеров и запустите их
/etc/init.d/apps build
/etc/init.d/apps start - Проверьте все ли в порядке
/etc/init.d/apps check
Добавление диска на старых установках
- Добавьте диск и разметьте раздел по статье документации "Подготовка нового диска"
- Смонтируйте его в директорию /mnt/db/ Допустим имя раздела /dev/sda3
mount /dev/sda3 /mnt/db
- Добавьте в файл /etc/fstab запись соответствующую Вашем новому разделу
Посмотрите ID раздела[root@devel24 ~]# blkid | grep /dev/sda3
/dev/vdb6: UUID="bcb28e2c-79e7-4e73-b611-816b67e83dd3" TYPE="ext4"Добавьте запись в /etc/fstab указав ID диска, полученный предыдущей командой:
UUID=bcb28e2c-79e7-4e73-b611-816b67e83dd3 /mnt/db ext4 nodiratime,noatime,async,data=journal 1 2
- Создайте структуру каталогов
cat /app/01_*.list | while read -r app; do mkdir -p /mnt/db/app/$app/db; done
- Остановите все контейнеры и размонтируйте разделы
/etc/init.d/auditd stop /etc/init.d/rsyslog stop /etc/init.d/apps stop /etc/init.d/apps destroy
- Смонтируйте разделы заново, чтобы подключились ранее созданные папки
/etc/init.d/apps build
- Перенесите данные на новый раздел
mv /mnt/var/app/asr_billing/var/db/* /mnt/db/app/asr_billing/db/
- Зайдите в контейнер биллинга
chroot /app/asr_billing/
- Убедитесь что по старому пути не осталось данных
[root@vm_old ~]# ls -l /var/db/
итого 0 - Удалите папку и создайте вместо неё символьную ссылку на новое расположение данных
rm -rf /var/db ln -s ../../mnt/db/ /var/db
- Выйдите из контейнера биллинга и убедитесь что символьная ссылка создана правильно:
[root@vm_old ~]# ll /app/asr_billing/var/db/billing.gdb.stop
-rw-rw---- 1 495 496 57704448 Апр 7 14:21 /app/asr_billing/var/db/billing.gdb.stop - Запустите все контейнеры
/etc/init.d/auditd start /etc/init.d/rsyslog start /etc/init.d/apps start