Добавление диска под БД

Skip to end of metadata
Go to start of metadata

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

В старых версиях 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 ~]#

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

  1. Добавьте диск и разметьте раздел по статье документации "Подготовка нового диска"
  2. Смонтируйте его в директорию /mnt/db/ Допустим имя раздела /dev/sdb1
    mkfs.ext4 -L dbfs /dev/sdb1
    mkdir /mnt/xdb
    mount /dev/sdb1 /mnt/xdb/
    
  3. Так как переносится весь раздел с базами данных контейнеров. Остановите работу контейнеров и размонтируйте разделы
    /etc/init.d/apps stop
    /etc/init.d/apps destroy
    
  4. Перенесите данные со старого раздела на новый
    mv /mnt/db/app /mnt/xdb/
    umount /mnt/db
    
  5. Отмонтируйте временную директорию /mnt/xdb/
    umount /mnt/xdb/
    
  6. Поправьте 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
  7. Смонтируйте раздел /dev/sdb1 в папку /mnt/db
    mount /dev/sdb1 /mnt/db
    
  8. Восстановите точки монтирования в контейнеров и запустите их

    /etc/init.d/apps build
    /etc/init.d/apps start

  9. Проверьте все ли в порядке
    /etc/init.d/apps check
    

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

  1. Добавьте диск и разметьте раздел по статье документации "Подготовка нового диска"
  2. Смонтируйте его в директорию /mnt/db/ Допустим имя раздела /dev/sda3
    mount /dev/sda3 /mnt/db
  3. Добавьте в файл /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
  4. Создайте структуру каталогов
    cat /app/01_*.list | while read -r app; do mkdir -p /mnt/db/app/$app/db; done
  5. Остановите все контейнеры и размонтируйте разделы
    /etc/init.d/auditd stop
    /etc/init.d/rsyslog stop
    /etc/init.d/apps stop
    /etc/init.d/apps destroy
  6. Смонтируйте разделы заново, чтобы подключились ранее созданные папки
    /etc/init.d/apps build
  7. Перенесите данные на новый раздел
    mv /mnt/var/app/asr_billing/var/db/* /mnt/db/app/asr_billing/db/
  8. Зайдите в контейнер биллинга
    chroot /app/asr_billing/
  9. Убедитесь что по старому пути не осталось данных

    [root@vm_old ~]# ls -l /var/db/
    итого 0

  10. Удалите папку и создайте вместо неё символьную ссылку на новое расположение данных
    rm -rf /var/db
    ln -s ../../mnt/db/ /var/db
  11. Выйдите из контейнера биллинга и убедитесь что символьная ссылка создана правильно:

    [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

  12. Запустите все контейнеры
    /etc/init.d/auditd start
    /etc/init.d/rsyslog start
    /etc/init.d/apps start
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.