На одной из моих виртуалок(LDOM) под Solaris ВНЕЗАПНО кончилось место. Как обычно просят определенное колличество, а в итоге получается что не расчитали. Но диск то уже создан и просто так его не расширишь. Покопавшись в интернетах, нашел мануал как увеличить объем диска ZFS. Мануал на английском можно почитать тут. Я выкладываю выкладки на русском:
Итак,общая теория - диск можно расширить в принципе двумя методами:
1. Подключаем к к оригинальному диску второй диск большего размера в режиме зеркала, ждем когда зеркало засинкается, отключаем оригинальный диск, подключаем к виртуалке диск большего объема.
2. Подключаем диск такого же объема как оригинальный в зеркало, ждем когда диск засинкается, отключаем оригинальный, увеличиваем оригинальный диск, подключаем его к зеркалу, ждем когда засинкается, отключаем второй диск из зеркала - монтируем к виртуалке оригинальный диск большего объема.
В текущий момент пойдет разговор про второй метод.
Итак начнем:
1. Для проверки создадим 2 диска одинакового объема
# mkfile 1g file1
# mkfile 1g file2
2. Сделаем из них зеркало
# zpool create zphouston mirror /tmp/file1 /tmp/file2
# df -h /zphouston
Filesystem size used avail capacity Mounted on
zphouston 984M 24K 984M 1% /zphouston
мы получили обычное ZFS зеркало, размером всего в 984мб
3. Запишим на этот диск какойнить файл для проверки, что данные сохранились
допустим так:
# mkfile 20m /zphouston/20megfile
# sum /zphouston/20megfile |tee /zphouston/sum
0 40960 /zphouston/20megfile
Теперь о ужыс у нас допустим ВНЕЗАПНО кончилось место на зеркале и нам нада увеличить объем
4. отключаем один из дисков в зеркале, например диск 2 под названием file2
# zpool offline zphouston /tmp/file2
Bringing device /tmp/file2 offline
# zpool status zphouston
pool: zphouston
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zphouston DEGRADED 0 0 0
mirror DEGRADED 0 0 0
/tmp/file1 ONLINE 0 0 0
/tmp/file2 OFFLINE 0 0 0
Все диск отключен.
5. Для чистоты эксперемента - удалим диск file2, он нам не нужен по большей части уже
# rm file2
6. Теперь создаем диск большего размера, допусти в 2гига
# mkfile 2g file2
7. Прикручиваем диск к зеркальному пулу следующим образом
# zpool replace zphouston /tmp/file2 /tmp/file2
8. Посмотрим, что же у нас получилось в текущий момент:
# zpool status
pool: zphouston
state: DEGRADED
scrub: resilver completed with 0 errors on Mon Feb 9 14:01:22 2009
config:
NAME STATE READ WRITE CKSUM
zphouston DEGRADED 0 0 0
mirror DEGRADED 0 0 0
/tmp/file1 ONLINE 0 0 0
replacing DEGRADED 0 0 0
/tmp/file2/old UNAVAIL 0 0 0 cannot open
/tmp/file2 ONLINE 0 0 0
errors: No known data errors
о ужыс, зеркало поломано, старый диск не доступен, все сломалось
9. Ждем некоторое время(зависит от объема диска, данных и т.д.) и смотрим снова статус:
# zpool status zphouston
pool: zphouston
state: ONLINE
scrub: resilver completed with 0 errors on Mon Feb 9 14:01:22 2009
config:
NAME STATE READ WRITE CKSUM
zphouston ONLINE 0 0 0
mirror ONLINE 0 0 0
/tmp/file1 ONLINE 0 0 0
/tmp/file2 ONLINE 0 0 0
errors: No known data errors
опа, уже все онлайн и щастье есть!
10. Сколько же у нас сейчас получилось места? Давайте посмотрим:
# df -h /zphouston
Filesystem size used avail capacity Mounted on
zphouston 984M 20M 964M 3% /zphouston
мда, не сильно изменилось, но так и должно быть!
11. Отключаем старый диск размером в 1гиг
# zpool detach zphouston /tmp/file1
12. А теперь сколько места?
# df -h /zphouston
Filesystem size used avail capacity Mounted on
zphouston 2.0G 20M 1.9G 1% /zphouston
2! гига, тоесть это то, чего мы и добивались
13. А что же у нас со статусом зеркала:
# zpool status zphouston
pool: zphouston
state: ONLINE
scrub: resilver completed with 0 errors on Mon Feb 9 14:01:22 2009
config:
NAME STATE READ WRITE CKSUM
zphouston ONLINE 0 0 0
/tmp/file2 ONLINE 0 0 0
errors: No known data errors
все в порядке, 1 диск светится и работает в штатном режиме.
14. Далее нам необходимо востановить зеркало, ну или не востанавливать если это не надо.
пожалуй востановим на всякий случай
удаляем старый фаил file1 размером в 1 гигобайт
# rm file1
создаем такойже фаил, только размером в 2 гига(чтобы зеркало было синхронизированно по объему)
# mkfile 2g file1
присоединяем новый фаил к пулу ZFS
# zpool attach zphouston /tmp/file2 /tmp/file1
проверяем статус зеркала
# zpool status zphouston
pool: zphouston
state: ONLINE
scrub: resilver completed with 0 errors on Mon Feb 9 14:12:38 2009
config:
NAME STATE READ WRITE CKSUM
zphouston ONLINE 0 0 0
mirror ONLINE 0 0 0
/tmp/file2 ONLINE 0 0 0
/tmp/file1 ONLINE 0 0 0
errors: No known data errors
ну и наконец, смотрим сколько получилось места:
# df -h /zphouston
Filesystem size used avail capacity Mounted on
zphouston 2.0G 20M 1.9G 1% /zphouston
все в порядке, 2гигобайта, тем самым мы увеличили диск
а что же с нашим файлом, который мы создали, посмотрим:
# sum /zphouston/20megfile
0 40960 /zphouston/20megfile
все наместе, щастье мы обрели
ЗЫЖ все выше описанные манипуляции делаем на свой страх и риск, не забываем бакапить, никакой отвественности за потерю данных я не несу, ибо это только теория, хоть и мне придется скоро испытать ее на практике, по этому будет отдельный пост.
Читать далее
Показаны сообщения с ярлыком ldom. Показать все сообщения
Показаны сообщения с ярлыком ldom. Показать все сообщения
четверг, 13 мая 2010 г.
среда, 10 февраля 2010 г.
Solaris + LDOM + ZFS
Руки дошли наконец до SPARC, на который надо было засетапить виртуалку. Файловая система была выбрана ZFS, которая ставится на диск.
А теперь по пунктам, порядок установки:
1. Предварительные приготовления
Так как я ставил минимальную инсталяцию, такой вещи как LDOM в установленном солярисе не было, первым делом необходимо скачать LDoms Manager разархивирвать при помощи unzip и запустить install/install-ldm
далее перезагружаем солярку командой reboot
после загрузки проверяем стартанул ли ldom, командой ldm ls
должно появится что то типа:
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -n-c-- SP 4 4G 0.0% 16m
командой svcadm enable vntsd делаем так, чтобы сервис стартовал при ребуте
svcadm restart vntsd - перезапустит серивс
по идее дефеольтные настройки все должны быть готовы
2. создаем ZFS диск для образа солярки
создаем пул
zpool create ldomdisk c1t1d0
создаем раздел в пуле
zfs create ldomdisk/ldom1
а теперь самое главное, создаем 60 гиговый раздел под виртуалку, на который будем ставить солярку
zfs create -V 60g ldomdisk/ldom1/disk.image
3. Создаем собственно саму виртуалку.
Создаем виртуалку
ldm add-domain ldom1
указываем сколько процов нам необходимо использовать в виртуалке
ldm add-vcpu 4 ldom1
указываем сколько памяти нам необходимо использовать в виртуалке
ldm add-memory 4G
подключаем сетевую плату из primary ldom
ldm add-vnet vnet1 primary-vsw0 ldom1
а теперь самое интересное, добавляем сам ZFS диск на который будет ставится виртуалка
ldm add-vdsdev /dev/zvol/dsk/ldomdisk/ldom1/disk.image vol1@primary-vds
подключаем этот диск к новосозданному ldom1
ldm add-vdisk vdisk0 vol1@primary-vds ldom1
выключаем автоматическую загрузку, так как грузится будем с установочного образа Solaris
ldm set-variable auto-boot\?=false
теперь необходимо прописать установочный образ Solaris в формате iso
ldm add-vdsdev /export/home/bear/sol-10-u7-ga-sparc-dvd.iso cdrom@primary-vds
и подключить к ldom1
ldm add-vdisk cdrom cdrom@primary-vds ldom1
ну вот и все, настройки дефолтные готовы
прибиндиваем ldom командой
ldm bind ldom1
и стартуем
ldm start ldom1
если набрать ldm ls , то можно увидеть что рядом с ldom1 будет написанно active
если так написанно то все отлично и работает
4. завершающая часть
теперь телнетимся по 5000 порту к виртуалке
telnet localhost 5000
нажимаем ентер и видим, пишется {0} ok это значит, что виртуалка ожидает команд
даем команду на загрузку с образа
boot cdrom
и инсталим Solaris как обычно
из полезных команд в виртуалке можно выделить следующие
show-disks - поглядеть все дисковые устройства подключенные к виртуалке
devalias - поглядеть присвоеные алиасы для устройств
Дока по ZFS
вот в приницпе и все, ничего сложно в общем нет
Читать далее
А теперь по пунктам, порядок установки:
1. Предварительные приготовления
Так как я ставил минимальную инсталяцию, такой вещи как LDOM в установленном солярисе не было, первым делом необходимо скачать LDoms Manager разархивирвать при помощи unzip и запустить install/install-ldm
далее перезагружаем солярку командой reboot
после загрузки проверяем стартанул ли ldom, командой ldm ls
должно появится что то типа:
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -n-c-- SP 4 4G 0.0% 16m
командой svcadm enable vntsd делаем так, чтобы сервис стартовал при ребуте
svcadm restart vntsd - перезапустит серивс
по идее дефеольтные настройки все должны быть готовы
2. создаем ZFS диск для образа солярки
создаем пул
zpool create ldomdisk c1t1d0
создаем раздел в пуле
zfs create ldomdisk/ldom1
а теперь самое главное, создаем 60 гиговый раздел под виртуалку, на который будем ставить солярку
zfs create -V 60g ldomdisk/ldom1/disk.image
3. Создаем собственно саму виртуалку.
Создаем виртуалку
ldm add-domain ldom1
указываем сколько процов нам необходимо использовать в виртуалке
ldm add-vcpu 4 ldom1
указываем сколько памяти нам необходимо использовать в виртуалке
ldm add-memory 4G
подключаем сетевую плату из primary ldom
ldm add-vnet vnet1 primary-vsw0 ldom1
а теперь самое интересное, добавляем сам ZFS диск на который будет ставится виртуалка
ldm add-vdsdev /dev/zvol/dsk/ldomdisk/ldom1/disk.image vol1@primary-vds
подключаем этот диск к новосозданному ldom1
ldm add-vdisk vdisk0 vol1@primary-vds ldom1
выключаем автоматическую загрузку, так как грузится будем с установочного образа Solaris
ldm set-variable auto-boot\?=false
теперь необходимо прописать установочный образ Solaris в формате iso
ldm add-vdsdev /export/home/bear/sol-10-u7-ga-sparc-dvd.iso cdrom@primary-vds
и подключить к ldom1
ldm add-vdisk cdrom cdrom@primary-vds ldom1
ну вот и все, настройки дефолтные готовы
прибиндиваем ldom командой
ldm bind ldom1
и стартуем
ldm start ldom1
если набрать ldm ls , то можно увидеть что рядом с ldom1 будет написанно active
если так написанно то все отлично и работает
4. завершающая часть
теперь телнетимся по 5000 порту к виртуалке
telnet localhost 5000
нажимаем ентер и видим, пишется {0} ok это значит, что виртуалка ожидает команд
даем команду на загрузку с образа
boot cdrom
и инсталим Solaris как обычно
из полезных команд в виртуалке можно выделить следующие
show-disks - поглядеть все дисковые устройства подключенные к виртуалке
devalias - поглядеть присвоеные алиасы для устройств
Дока по ZFS
вот в приницпе и все, ничего сложно в общем нет
Читать далее
Подписаться на:
Сообщения (Atom)