niedziela, 12 sierpnia 2007

Live Upgrade, XEN

Od jakiegos czasu uzywam Xena na solarisie, jednak jest on oparty na snv66. Na dzien dzisiejszy mamy juz build 69, dlatego chcialem zsynchronizowac sobie drugie BE (srodowisko uruchomieniowe).

Zaczalem od utworzenia nowego srodowiska:
time lucreate -c be0_xen66 -n be1_snv69 -m /:c0d0s3:ufs
Glowny system plikow mam na /dev/dsk/c0d0s0, partycja /dev/c0d0s3 byla pusta - specjalnie utworzona na potrzeby Live Upgrade.

Oto co otrzymalem:

Discovering physical storage devices
Discovering logical storage devices
Cross referencing storage devices with boot environment configurations
Determining types of file systems supported
Validating file system requests
The device name expands to device path
Preparing logical storage devices
Preparing physical storage devices
Configuring physical storage devices
Configuring logical storage devices
ERROR: The system must be rebooted after applying required patches.
Please reboot and try again.

Hmm, wyglada jak nastepujace BUGI:
6488829, 6501968

Generalnie jest to spowodowane tym, ze LU nie widzi jakie mam dyski:
/sbin/biosdev
biosdev: Could not match any!!

Wiec zrobilem maly trik:
cd /sbin/
mv biosdev biosdev_orig

Aby dowiedziec sie jak system odwoluje sie do mojego dysku skorzystalem z 'format':
# format

Pokazal mi, ze dysk w laptopie jest reprezentowany nastepujaco:
/pci@0,0/pci-ide@14,1/ide@0/cmdk@0,0

Teraz trorze plik /sbin/biosdev aby mial nastepujaca zawartosc:
cat /sbin/biosdev
#! /bin/sh

echo "0x80 /pci@0,0/pci-ide@14,1/ide@0/cmdk@0,0"

# EOF


Zmieniam mu prawa dostepu na wykonywalne:
chmod 755 /sbin/biosdev

I zaczynam ponownie tworzyc LU...
Efekt taki sam, nawet po restarcie ... (init 6)

Wiec sprobuje zrobic to na 'czystym' SXCE, bez Xena.

Uruchamiam ponownie, 'reboot' - bo nie chce mi sie czekac:)

Na czystym SXCE zarowno /sbin/biosdev jak i /sbin/biosdev_orig daja identyczne wyjscie:
> /sbin/biosdev
0x80 /pci@0,0/pci-ide@14,1/ide@0/cmdk@0,0
> /sbin/biosdev_orig
0x80 /pci@0,0/pci-ide@14,1/ide@0/cmdk@0,0

Powinno dzialac, uruchamiamy LU:
lucreate -c be0_xen66 -n be1_snv69 -m /:c0d0s3:ufs
Discovering physical storage devices
Discovering logical storage devices
Cross referencing storage devices with boot environment configurations
Determining types of file systems supported
Validating file system requests
The device name expands to device path
Preparing logical storage devices
Preparing physical storage devices
Configuring physical storage devices
Configuring logical storage devices
Analyzing system configuration.
No name for current boot environment.
Current boot environment is named .
Creating initial configuration for primary boot environment .
The device is not a root device for any boot environment; cannot get BE ID.
PBE configuration successful: PBE name PBE Boot Device .
Comparing source boot environment file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Searching /dev for possible boot environment filesystem devices

Updating system configuration files.
The device is not a root device for any boot environment; cannot get BE ID.
Creating configuration for boot environment .
Source boot environment is .
Creating boot environment .
Checking for GRUB menu on boot environment .
The boot environment does not contain the GRUB menu.
Creating file systems on boot environment .
Creating file system for in zone on .
Mounting file systems for boot environment .
Calculating required sizes of file systems for boot environment .
Populating file systems on boot environment .
Checking selection integrity.
Integrity check OK.
Populating contents of mount point .
Copying.
...

Ok teraz tworzy sie drugie srodowisko uruchomieniowe nazwane jako '
be1_snv69'.
Bierzace srodowisko uruchomieniowe nazwalismy
'be0_xen66'.


Musimy pamietac, ze system teraz kopiuje cala zawartosc glownej partycji, moze to troszke potrwac, szczegolnie na laptopie :)

kolejne komunikaty:
Creating shared file system mount points.
Creating compare databases for boot environment .
Creating compare database for file system .
Updating compare databases on boot environment .
Making boot environment bootable.
Updating bootenv.rc on ABE .
Population of boot environment successful.
Creation of boot environment successful.


W tym momencie mamy utworzone 2 BE, aby miec pewnosc wpisujemy:
# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
be0_xen66 yes yes yes no -
be1_snv69 yes no no yes -

Gdy uruchomimy ponownie system bedziemy mieli dodatkowe wpisy w GRUBie, domyslnie jednak uruchomi sie be0_xen66.

Zeby to zmienic i uruchomic system z nowego srodowiska (nowej partycji) musimy zrobic:
# luactivate -n be1_snv69

Saving latest GRUB loader.
Generating partition and slice information for ABE
Boot menu exists.
Generating direct boot menu entries for ABE.
Generating direct boot menu entries for PBE.

**********************************************************************

The target boot environment has been activated. It will be used when you
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You
MUST USE either the init or the shutdown command when you reboot. If you
do not use either init or shutdown, the system will not boot using the
target BE.

**********************************************************************

In case of a failure while booting to the target BE, the following process
needs to be followed to fallback to the currently working boot environment:

1. Do *not* change *hard* disk order in the BIOS.

2. Boot from the Solaris Install CD or Network and bring the system to
Single User mode.

3. Mount the Parent boot environment root slice to some directory (like
/mnt). You can use the following command to mount:

mount -Fufs /dev/dsk/c0d0s0 /mnt

4. Run utility with out any arguments from the Parent boot
environment root slice, as shown below:

/mnt/sbin/luactivate

5. luactivate, activates the previous working boot environment and
indicates the result.

6. Exit Single User mode and reboot the machine.

**********************************************************************

Modifying boot archive service
GRUB menu is on device: .
Filesystem type for menu device: .
Activation of boot environment successful.


Aby obaczyc co sie stalo wpisujemy lustatus:
# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
be0_xen66 yes yes no no -
be1_snv69 yes no yes no -

lustatus mowi, ze aktywny po restarcie bedzie nasz system w nowym BE

Aby poprawnie dokonczyc ta operacje musimy zrestartowac system poprzez np 'init 6', o czym mowi zdanie "
You MUST USE either the init or the shutdown command when you reboot."


Zrobilismy w ten sposob kopie systemu, mozemy teraz testowac i psuc do woli :)

Jest to tylko kopia dzialajacego systemu, nie robilismy jeszcze upgrade'u do nowszej wersji SXCE, o tym w nastepnym poscie ...

Brak komentarzy: