Автор Тема: Resize на XEN image  (Прочетена 5018 пъти)

teleport

  • Напреднали
  • *****
  • Публикации: 134
    • Профил
Resize на XEN image
« -: Nov 27, 2008, 20:16 »
Ситуацията е следната: имам сървър на който под xen работят 10-тина виртуални машини. Всички са копие на една базова инсталация направени с "virt-clone". Проблема е че със закъснение установих копията са направени от грешен имидж. А всички виртуални машини вече са конфигурирани и работят.

Код:
[root@xen images]# losetup -f www_clean.img
[root@xen images]# fdisk -l /dev/loop0

Disk /dev/loop0: 6291 MB, 6291456000 bytes
255 heads, 63 sectors/track, 764 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1   *           1          25      200781   83  Linux
/dev/loop0p2              26         286     2096482+  82  Linux swap / Solaris
/dev/loop0p3             287         764     3839535   83  Linux

Проблем с resize на swap-а от 2G на 512M няма. Но преместването на 3-тия партишън напред и след това resize се оказва проблем. Gparted е единственото което открих че може да мести (копира) партишън, но не работи с имиджи, даже и да са монтирани с losetup/kpartx.

Всякакви идеи как може да се направи resize ще ми бъдат изключително полезни.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Resize на XEN image
« Отговор #1 -: Nov 27, 2008, 20:36 »
Какво ще рече "преместване напред" ?
Активен

"Knowledge is power" - France is Bacon

teleport

  • Напреднали
  • *****
  • Публикации: 134
    • Профил
Re: Resize на XEN image
« Отговор #2 -: Nov 27, 2008, 20:57 »
След като swap-а се намали на 512M ще останат 1.5G между 2-рия и 3-тия партишън. Третия (ext3) трябва да се премести с 1.5G по-напред в имиджа, след това да се увеличи с 1.5G и след това да се resize файловата система. Самия resize на ext3 не е проблем, маха се журнала, resize като ext2 и след това се добавя отново журнал. Но преместването така че да се запази информацията ми е проблем.

Принципно мога да създам нов partition table с правилните размери, да копирам с dd първия партишън (/boot), после да инициализирам swap-а, после отново dd за 3-тия и последващия resize, но калкулирането на правилните отмествания за dd нещо ми убягва.

Отделно че това все пак трябва да го сглобя във скрипт, защото има още 9 имиджа, които чакат за същата операция.

PS: принципно ми е хрумнала идеята да сложа още един хард временно, dd if=image of=/dev/sdc, извършване на resize/move с gparted, после обратно в имиджа с dd, но ще е изключително трудно поради хардуерни ограничения: липса на свободен sata порт, както и липса на място за 3-ти хард. Машината е 1U dell. Варианта с 3-ти хард на usb е изключително бавен.
« Последна редакция: Nov 27, 2008, 21:06 от teleport »
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Resize на XEN image
« Отговор #3 -: Nov 27, 2008, 21:07 »
Ами не :)

Аз бих подходил по друг начин. Преформатирам swap дяла с ext3 и копирам всичко от третия дял на втория (през това време бих карам без swap...ужас :) ). После изтривам третия дял. Оттам почва магията :)

1) Влизам в fdisk. Изтривам третия дял.
2) Изтривам втория дял (да, сериозно говоря)
3) Създавам наново втория дял, по-голям колкото трябва.
4) resize2fs на файловата система върху втория дял.
5) Влизам в fdisk и създавам трети дял за swap.

Дали това е безопасно? Мдам, колкото и идиотски да звучи.

И все пак това е нещо което АЗ бих направил. Съвсем не препоръчвам хората да правят такива идиотски упражнения :)

И апропо, след едно такова упражнение ще заобичаш LVM - там такива дивотии няма да ти се налагат чак до такава степен :)

Но това е приложимо само ако файловете на третия дял могат да се съберат на мястото на втория, иначе....кофти.
Активен

"Knowledge is power" - France is Bacon

teleport

  • Напреднали
  • *****
  • Публикации: 134
    • Профил
Re: Resize на XEN image
« Отговор #4 -: Nov 27, 2008, 21:12 »
Точно това е проблема: "ако има място". Аз разбрах че основния имидж е грешния в момента в който свърши мястото. Без swap не е проблем, така или иначе машината е виртуална, може да я рестартирам с 4Gb рам, но няма място:

Код:
[root@localhost ~]# df -H
Filesystem             Size   Used  Avail Use% Mounted on
/dev/xvda3             3.9G   3.6G    18M 100% /
/dev/xvda1             200M    26M   163M  14% /boot
tmpfs                  135M      0   135M   0% /dev/shm

Забравих: lvm-а много си го обичам, но във виртуална машина дава голям overhead. Пък и 4Gb полезно място във виртуална машина която държи 1 сайт ми се струваше достатъчно. А да създам 2-ри имидж с по-голям размер и да го монтирам в /var/www/html е преразход на място. Все пак хардовете на машината не са безкрайни. Не ми се иска да преинсталирам защото тъкмо успях да наглася виртуалните машини да работят прекрасно с разни екзотични екстри като freetds, imagemagick, pptpd(vpn) сървъри и подобни гадости за да се радват web програмистите.
« Последна редакция: Nov 27, 2008, 21:22 от teleport »
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Resize на XEN image
« Отговор #5 -: Nov 27, 2008, 21:24 »
Добре де, ти можеш да си я монтираш като loop устройство. Предполагам че из файловите системи на dom0-та имаш поне място за временно съхранение. Защо не ги tar-неш някъде там и след великата манипулация не ги изпльоскаш върху /dev/loop0p2?

Разбира се, по време на тази тарапана всички виртуални машини трябва да са угасени, за предпочитане.
Активен

"Knowledge is power" - France is Bacon

teleport

  • Напреднали
  • *****
  • Публикации: 134
    • Профил
Re: Resize на XEN image
« Отговор #6 -: Nov 27, 2008, 21:31 »
Защото след създаване на нов имидж, losetup на двата ( угасена vm ), tar cf и tar xfp pygrub ме заплюва че не може да намери кернела на виртуалната машина за да го стартира.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Resize на XEN image
« Отговор #7 -: Nov 27, 2008, 21:36 »
Бах....тва е странно, нали /boot ти е първият дял?!?

Много странно...дали процесорът ти подържа хардуерна виртуализация да се пробваш да го запалиш като hvm и съответно без pygrub? Само за пробата де, да видим там какво ще изреве...
Активен

"Knowledge is power" - France is Bacon

teleport

  • Напреднали
  • *****
  • Публикации: 134
    • Профил
Re: Resize на XEN image
« Отговор #8 -: Nov 27, 2008, 21:43 »
Не поддържа за съжаление. Първата ми работа беше да опитам да насадя един Q6600. Дъното поддържа макс Pentuim D и е с P4-D 925. Повече не може.

Явно ще се опитам да спретна някакво програмче което да сметне параметрите за dd  и ще копирам целите партишъни.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Resize на XEN image
« Отговор #9 -: Nov 27, 2008, 21:47 »
Ами всъщност и това е вариант, можеш да dump-неш целия p3 върху файл, да направиш тъпата манипулация, после dd if=faila of=/dev/loop0p2, ресайзването на файловата система би следвало да сработи след това. Обаче това дето реве pygrub е много странно и не знам дали няма да се прояви отново. Много странно. Това xen и паравиртуализацията обаче по принцип е извратена история малко, аз затова си обичам kvm - лесно и като за тъпи хора като мене :) За жалост, при теб това не е опция както каза :(

Цитат
Забравих: lvm-а много си го обичам, но във виртуална машина дава голям overhead.

Бляяя не, overhead от гледна точка на това че се хаби място за метаданни, ама това не е чак толкова много. Откъм производителност няма особена разлика
« Последна редакция: Nov 27, 2008, 21:53 от gat3way »
Активен

"Knowledge is power" - France is Bacon

teleport

  • Напреднали
  • *****
  • Публикации: 134
    • Профил
Re: Resize на XEN image
« Отговор #10 -: Nov 27, 2008, 23:54 »
Проблема е решен:

Код:
[root@xen images]# cat zr
#!/bin/bash -v

losetup /dev/loop5 $1
cp $1 $1.new
losetup /dev/loop6 $1.new
kpartx -a /dev/loop5

fdisk /dev/loop6 < fdisk.script

kpartx -a /dev/loop6

mkswap /dev/mapper/loop6p2

dd if=/dev/mapper/loop5p3 of=/dev/mapper/loop6p3 bs=512

e2fsck -f /dev/mapper/loop6p3
resize2fs /dev/mapper/loop6p3
e2fsck -f /dev/mapper/loop6p3

kpartx -d /dev/loop5
kpartx -d /dev/loop6

losetup -d /dev/loop5
losetup -d /dev/loop6

mv $1 $1.old
mv $1.new $1

echo "Done."


И командите за fdisk:

Код:
[root@xen images]# cat fdisk.script
d
3
d
2
n
p
2

+512M
t
2
82
n
p
3


w


Параметъра на скрипта е името на имиджа. Има едно копиране на 4Gb в повече, но важното е че работи. Естествено преди пускането на скрипта виртуалната машина се гаси чисто (shutdown).
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
resize na ext3
Настройка на хардуер
pavelhot 11 6904 Последна публикация Feb 04, 2005, 11:20
от pavelhot
Partition resize
Настройка на програми
phantomlord 5 5711 Последна публикация Jun 21, 2005, 00:50
от phantomlord
Resize на ext2 дялове
Настройка на програми
fragmaker 0 4118 Последна публикация Aug 26, 2005, 00:33
от fragmaker
Resize na ext3
Настройка на програми
vladimir_v 1 5372 Последна публикация May 06, 2007, 11:47
от Kalin
Resize Partition
Настройка на програми
hdtdi 5 4631 Последна публикация May 31, 2009, 10:51
от tolostoi