Просмотр Исходного

{toc}

h1. Определение способа добавления диска

В старых версиях Carbon PL5 для БД биллинга не создавалось отдельного раздела, она располагалась в */mnt/var*. Однозначно убедиться какая установка у Вас, Вы можете следующим способом:
Выполните команду
{code}grep '/mnt/db' /etc/fstab{code}
В зависимости от вывода команды, на старых установках в ответ не вернётся ни чего, на новых - строка с параметрами монтирования раздела, например:
* старая установка
{panel}\[root@vm_old \~\]# grep '/mnt/db' /etc/fstab
\[root@vm_old \~\]#{panel}
* новая установка
{panel}\[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 \~\]#{panel}

h2. Добавление диска на новых установках

# Добавьте диск и разметьте раздел по статье документации "[CarbonBilling:Подготовка нового диска]"
# Смонтируйте его в директорию */mnt/db*/ Допустим имя раздела */dev/sdb1*
{code}
mkfs.ext4 -L dbfs /dev/sdb1
mkdir /mnt/xdb
mount /dev/sdb1 /mnt/xdb/
{code}
# Так как переносится весь раздел с базами данных контейнеров. Остановите работу контейнеров и размонтируйте разделы
{code}
/etc/init.d/apps stop
/etc/init.d/apps destroy
{code}
# Перенесите данные со старого раздела на новый
{code}
mv /mnt/db/app /mnt/xdb/
{code}
# Отмонтируйте временную директорию */mnt/xdb/*
{code}
umount /mnt/xdb/
{code}
# Отмонтируйте старый раздел с БД */dev/sda1*
{code}
umount /mnt/db
{code}
# Поправьте fstab
Найдите уникальный ID (UUID) нового раздела
{panel}
blkid
/dev/sdb1: {color:red}UUID="62897047-0222-43e3-95e5-16b1b6de2b71"{color} TYPE="ext4"
{panel}
Замените найденный *UUID* в */etc/fstab* для раздела /mnt/db
{code}
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{code}
То есть, вместо такой строки:
{code}UUID=73ffd725-12eb-443b-9042-ac29967b4273 /mnt/db ext4 nodiratime,noatime,async,data=journal 1 1{code}
должна получиться такая:
{code}UUID=62897047-0222-43e3-95e5-16b1b6de2b71 /mnt/db ext4 nodiratime,noatime,async,data=journal 1 1{code}
# Смонтируйте раздел */mnt/db*, команда {{mount}} сама поймёт по конфигурации {{fstab}}, что нужно подключить раздел */dev/sdb1*
{code}
mount /mnt/db
{code}
# Восстановите точки монтирования в контейнеров и запустите их
{panel}
/etc/init.d/apps build
/etc/init.d/apps start
{panel}
# Проверьте все ли в порядке
{code}
/etc/init.d/apps check
{code}

h2. Добавление диска на старых установках

# Добавьте диск и разметьте раздел по статье документации "[CarbonBilling:Подготовка нового диска]"
# Смонтируйте его в директорию */mnt/db*/ Допустим имя раздела */dev/sda3*
{code}mount /dev/sda3 /mnt/db{code}
# Добавьте в файл */etc/fstab* запись соответствующую Вашем новому разделу
Посмотрите ID раздела
{panel}\[root@devel24 \~\]# blkid \| grep /dev/sda3
/dev/vdb6: {color:red}UUID="bcb28e2c-79e7-4e73-b611-816b67e83dd3"{color} TYPE="ext4"{panel}
Добавьте запись в */etc/fstab* указав ID диска, полученный предыдущей командой:
{code}UUID=bcb28e2c-79e7-4e73-b611-816b67e83dd3 /mnt/db ext4 nodiratime,noatime,async,data=journal 1 2{code}
# Создайте структуру каталогов
{code}cat /app/01_*.list | while read -r app; do mkdir -p /mnt/db/app/$app/db; done{code}
# Остановите все контейнеры и размонтируйте разделы
{code}/etc/init.d/auditd stop
/etc/init.d/rsyslog stop
/etc/init.d/apps stop
/etc/init.d/apps destroy{code}
# Смонтируйте разделы заново, чтобы подключились ранее созданные папки
{code}/etc/init.d/apps build{code}
# Перенесите данные на новый раздел
{code}mv /mnt/var/app/asr_billing/var/db/* /mnt/db/app/asr_billing/db/{code}
# Зайдите в контейнер биллинга
{code}chroot /app/asr_billing/{code}
# Убедитесь что по старому пути не осталось данных
{panel}\[root@vm_old \~\]# ls \-l /var/db/
итого 0{panel}
# Удалите папку и создайте вместо неё символьную ссылку на новое расположение данных
{code}rm -rf /var/db
ln -s ../../mnt/db/ /var/db{code}
# Выйдите из контейнера биллинга и убедитесь что символьная ссылка создана правильно:
{panel}\[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{panel}
# Запустите все контейнеры
{code}/etc/init.d/auditd start
/etc/init.d/rsyslog start
/etc/init.d/apps start{code}