Увеличение дискового пространства в ОС Solaris 'на лету'
Бывают ситуации, когда надо выполнить увеличение дискового пространства 'на лету' - без останова сервера, приложений и потери данных.
Совсем недавно ко мне обратился бывший коллега и хороший знакомый Олег Зражаев с просьбой помочь как раз в таком деле.
В ОС Solaris это можно сделать стандартными средствами или используя ПО Veritas SF.
Рассмотрим первый случай (стандартными средствами):
Дано:
1. Имеется пароль пользователя root
2. Сервер Sun UltraEnterprise 450, в котором установлено ПО Solstice DiskSuite или Solaris Volume Manager, имеется 4 hdd:
Загрузочный диск и его зеркало (/, swap, /export/home) RAID-1 с именем d10, состоящий из d11 (c0t0d0, 36 Гб) и d12 (c0t1d0, 36 Гб)
/oradata (оба диска разбиты на 2 слайса: слайс3 - 64Мб, слайс7 - 'остатки') RAID-0 с именем d20, состоящий из c0t2d0 (36 Гб) и c0t3d0 (36 Гб).
3. Все диски отформатированы под UFS
4. Реплики metadb размещены на 3х слайсах всех дисков по 3 на каждом
5. Новый диск, емкостью 36 Гб для увеличения дискового пространства точки монтирования /oradata
Выполнить: увеличение дискового пространства /oradata 'на лету' (без останова сервера и потери данных).
План решения:
Для решения задачи этой на любом сервере, в котором забиты все стандартные дисковые слоты нам необходима дополнительная внутренняя дисковая корзинка (в стандартной поставке есть только 4 слота для дисков), либо какой-нибудь простой внешний дисковый массив (unipack, multipack, jbod) или уж просто дисковый массив.
Решение:
Допустим, мы вышли из ситуации путем добавления нового диска во внешний дисковый массив.
Теперь необходимо выполнить команду (команды) в зависимости от версии Solaris:
Solaris 2.5 - 2.7 (2.5 - 5.7)
drvconfig
disks
devlinks
Solaris 8-10
devfsadm -v
Размечаем новый диск (например, c2t0d0) также как 2 диска из d20 (c0t2d0, c0t3d0)
- при помощи утилиты format (если хочется 'вручную' или диск другой емкости - не как c0t2d0 и c0t3d0)
- либо так (если все 3 диска абсолютно идентичны):