Virtual Partition Boot Process Overview

Booting partitions is similar to booting without partitions. The primary difference is the Virtual Partition Monitor - what I'll call vpmon in this chapter. vpmon is loaded at the time of boot and is located in /stand/vpmon.

The vpmon sits between the firmware and operating system on your HP system. Figure 1-10 depicts the position of the vpmon relative to other HP system components.

Figure 1-10. Virtual Partitions Software Stack


Notice in the figure that different versions and patch levels of HP-UX 11i may be running in vPars. On Itanium Processor Family (IPF) systems, operating systems other than HP-UX may be running in vPars. This functionality was not available at the time of this writing, so only HP-UX 11i-based vPars are covered in this book.

In the process of creating vPars, a partition database is produced that tracks the resources associated with vPars. The vpmon manages these resources, loads kernels, and performs other functions that make it look as though each virtual partition is its own system.

Rather than booting a kernel directly from the ISL (see the non-vPars-specific portion of this chapter for detailed information on all aspects of booting, including ISL), you boot the vpmon. The vpmon then loads the partition database /stand/vpdb and creates the vPars based on the resources allocated to the vPars in the database. vpdb is the default database, which contains partition-related information. A copy of vpdb is kept on the disk for every partition and is automatically kept synchronized. When a change is made to any partition, the master vpdb is updated and then the local copies on other vPars are automatically updated. This synchronization occurs every few seconds and ensures that vpdb on all running partitions remains synchronized. If a partition is not running its vpdb cannot be updated.

Without vPars you would boot the HP-UX kernel directly from ISL, as shown below:


 ISL> hpux /stand/vmunix
					

You can boot the vpmon from ISL with the command below:

ISL> hpux /stand/vpmon
					

The vpmon is invoked with this command and the vpmon prompt appears from which you can load vPars.

From the vpmon prompt we could issue the vparload command to load one or more Virtual Partitions. There are many options to the vparload command. There is no man page for vparload in Appendix B because it is a vpmon command. vparboot is a shell command so there is a man page in Appendix B for it. The following are the three forms of vparboot at the time of this writing:

						form1: vparload -all

form2: vparload -auto

form3: vparload -p vp_name [-b kernelpath] [-o boot_options]
[-B hardware_path]

form1 boots all vPars. form2 boots all vPars that have the autoboot attribute set. form3 allows you to specify options such as: the kernelpath to boot; the boot_options, such as "is" for single user mode; or hardware_path, which specifies the boot device to be used for the vPar.

Issuing the /stand/vpmon command at the ISL> prompt gives us the MON> prompt. To use vparload to boot all Virtual Partitions on a server we would issue the following command:

MON> vparload -all
					

To use vparload to boot the Virtual Partition symbol1, we would issue the following command:

MON> vparload -p symbol1
					

You could perform the steps to load both the vpmon and virtual partition symbol1 from ISL with the command below at the ISL prompt:


 ISL> hpux /stand/vpmon vparload -p symbol1
					

This command boots both vpmon and then symbol1. You may perform experimentation with the kernels of the vPars on your system and have to boot different kernels. The following example shows booting from a kernel called vmunix_test1:

MON> vparload -p symbol1 -b /stand/vmunix_test1
					

As a side note, the kernel path above is loaded with this vparload, but no permanent changes were made. To make a permanent change to the vPars database you would issue the following command:

# vparmodify -p symbol1 -b "stand/vmunix_test1"
					

The vPar database has now been modified to have a default kernel of /stand/vmunix_test1.

You can boot a vPar in single-user mode with the following command:

MON> vparload -p symbol1 -o "is"
					

There are a variety of other options that you can use for booting vPars. As you can see from this discussion, the options are similar to options you would use on a non-vPars system.

There are a variety of other commands that you can issue from MON>. The following shows some of the more common commands:

helpDisplays all of the commands available in MON> as shown below (? produces the same results):
										MON> help

Supported Commands:

?                Print list of commands
cat              Dump contents of file to screen
cbuf             Dump contents of console buffer
getauto          Print the AUTO file
help             Print list of commands
lifls            List files in LIF directory
log              View the event log
ls               List files in a directory
readdb           Read a partition DB
reboot           Reboot system
scan             Scan the system
toddriftreset    Reset the TOD drift of all vpars
vparload         Load vPar
vparinfo         Display vPar info

scanDisplays all hardware discovered by the Virtual Partition monitor and indicates which vPar, if any, owns the device. Note in the following listing that some components, such as the System Bus Adapters (SBAs) at 0 and 1 and the memory controller at 192, are owned by the Virtual Partition monitor and are therefore owned by VPAR-ALL. Other components are owned by vPar uhnjlvp1/2. This is an informative listing of all components and the vPar that owns them, as shown below:
										MON> scan
0           BUSCONV      sv_model= 12 
 HPA=0xfffffffffed00000   VPAR=ALL
0/0         BUS_BRIDGE   sv_model= 10 
 HPA=0xffffffffbffe0000   VPAR=uhnjlvp1
0/1         BUS_BRIDGE   sv_model= 10 
 HPA=0xffffffffbffe2000   VPAR=NONE
0/2         BUS_BRIDGE   sv_model= 10 
 HPA=0xffffffffbffe4000   VPAR=NONE
0/4         BUS_BRIDGE   sv_model= 10 
 HPA=0xffffffffbffe8000   VPAR=NONE
0/5         BUS_BRIDGE   sv_model= 10 
 HPA=0xffffffffbffea000   VPAR=NONE
0/8         BUS_BRIDGE   sv_model= 10 
 HPA=0xffffffffbfff0000   VPAR=uhnjlvp2
0/10        BUS_BRIDGE   sv_model= 10 
 HPA=0xffffffffbfff4000   VPAR=NONE
0/12        BUS_BRIDGE   sv_model= 10 
 HPA=0xffffffffbfff8000   VPAR=uhnjlvp1
1           BUSCONV      sv_model= 12 
 HPA=0xfffffffffed40000   VPAR=ALL
1/0         BUS_BRIDGE   sv_model= 10 
 HPA=0xfffffffffece0000   VPAR=NONE
1/2         BUS_BRIDGE   sv_model= 10 
 HPA=0xfffffffffece4000   VPAR=NONE
1/4         BUS_BRIDGE   sv_model= 10 
 HPA=0xfffffffffece8000   VPAR=NONE
1/8         BUS_BRIDGE   sv_model= 10 
 HPA=0xfffffffffecf0000   VPAR=NONE
1/10        BUS_BRIDGE   sv_model= 10 
 HPA=0xfffffffffecf4000   VPAR=NONE
1/12        BUS_BRIDGE   sv_model= 10 
 HPA=0xfffffffffecf8000   VPAR=uhnjlvp2
36          BUSCONV      sv_model= 12 
 HPA=0xfffffffffed24000   VPAR=NONE
37          NPROC        sv_model=  4 
 HPA=0xfffffffffed25000   VPAR=uhnjlvp1
44          BUSCONV      sv_model= 12 
 HPA=0xfffffffffed2c000   VPAR=NONE
45          NPROC        sv_model=  4 
 HPA=0xfffffffffed2d000   VPAR=uhnjlvp2
192         MEMORY       sv_model=  9 
 HPA=0xfffffffffedc0000   VPAR=ALL
MON> vparinfo uhnjlvp1

Resources assigned to partition 0 (uhnjlvp1)...
-------------------------------------
0           0xfffffffffed00000      1       0 
 TYPE= 7  SV_MODEL= 12
0/0         0xffffffffbffe0000      1       0 
 TYPE=13  SV_MODEL= 10
0/12        0xffffffffbfff8000      1       0 
 TYPE=13  SV_MODEL= 10
1           0xfffffffffed40000      1       0 
 TYPE= 7  SV_MODEL= 12
37          0xfffffffffed25000      1       0 
 TYPE= 0  SV_MODEL=  4
192         0xfffffffffedc0000      1       0 
 TYPE= 1  SV_MODEL=  9

Effective Size: 1572864 kb

Boot: 0/0/2/0.6.0
Console: 0/0/4/0
Boot Image: (0/0/2/0.6.0;)/stand/vmunix
Boot Options:
AUTOBOOT:off
DYNAMIC

vparinfo [partition_name]Displays resources assigned to the specified vPar or those resources that are unassigned if the vPar name is not specified. The following listing shows the resources assigned to vPar uhnjlvp2:
MON> vparinfo uhnjlvp2

Resources assigned to partition 1 (uhnjlvp2)...
-------------------------------------
0           0xfffffffffed00000      1       0 
 TYPE= 7  SV_MODEL= 12
0/8         0xffffffffbfff0000      1       0 
 TYPE=13  SV_MODEL= 10
1           0xfffffffffed40000      1       0 
 TYPE= 7  SV_MODEL= 12
1/12        0xfffffffffecf8000      1       0 
 TYPE=13  SV_MODEL= 10
45          0xfffffffffed2d000      1       0 
 TYPE= 0  SV_MODEL=  4
192         0xfffffffffedc0000      1       0 
 TYPE= 1  SV_MODEL=  9

Effective Size: 524288 kb

Boot: 1/12/0/0.12.0
Console: Default
Boot Image: (1/12/0/0.12.0;)/stand/vmunix
Boot Options:
AUTOBOOT:off
DYNAMIC

vparloadThe three forms of this command are listed below. The example after the three forms shows the beginning of loading all vPars with vparload -all:
form1: vparload -all

form2: vparload -auto

form3: vparload -p vp_name [-b kernelpath] [-o
 boot_options]
[-B hardware_path]



MON> vparload -all
[MON] Booting uhnjlvp2...
[MON] Booting uhnjlvp1...
[MON] Console client set to uhnjlvp2

[MON] uhnjlvp2 loaded

[MON] uhnjlvp1 loaded

              .
										.
										.
									

liflsDisplays the files in the LIF area as shown below:
MON> lifls
volume ISL10 data size 7802 directory size 8
filename   type   start   size     implement  created
======================================================
ODE        -12960 584     848
MAPFILE    -12277 1432    128
SYSLIB     -12280 1560    353
CONFIGDATA -12278 1920    218
SLMOD2     -12276 2144    140
SLDEV2     -12276 2288    134
SLDRV2     -12276 2424    168
SLSCSI2    -12276 2592    116
MAPPER2    -12279 2712    142
IOTEST2    -12279 2856    89
PERFVER2   -12279 2952    125
PVCU       -12801 3080    64
SSINFO     -12286 3144    2
ISL        -12800 3152    306
AUTO       -12289 3464    1
HPUX       -12928 3472    848
LABEL      -23951 4320    8

getautoDisplays the contents of the LIF area auto file as shown below:
MON> getauto
hpux

logDisplays all information in the Virtual Partition monitor log. The information is displayed in chronological order as shown below:
MON> log
INFO:CPU0:MON:[20:16:31 10/1/2001 GMT] VPAR
 Monitor version 0.2 started
INFO:CPU0:MON:Version string: @(#) $Revision:
 vpmon:    vw: -- selectors: CUP
11.11_BL2001_0616                 
 'cup_cvinod_vpar_ncf_trial' 'cup_shep_r11.11'  Tue
 Sep 25 18:2
1:12 PDT 2001 $
INFO:CPU0:MON:Partition uhnjlvp1 monarch set to 37
INFO:CPU0:MON:Partition uhnjlvp2 monarch set to 45

ls directoryLists the contents of a directory in much the same way as UNIX ls command. At the time of this writing, the directory must be HFS. The /stand directory is used by default. You can also add -a for all entries, -l for long listing, -n for numerical entries, -i for inode, and -F for file type appended to the output, such as a slash (/) after directories, as shown below using the -l option:
MON> ls -l /stand
drwxr-xr-x    2 0     0           8192 lost+found
-rw-rw-rw-    1 0     3           5416 ioconfig
drwxr-xr-x    4 0     3           2048 build
-rwxr-xr-x    1 0     0       15273152 vmunix
drwxrwxrwx    5 0     3           1024 dlkm.vmunix
.prev
-rw-r--r--    1 0     3             19 bootconf
-r--r--r--    1 0     3             82 kernrel
-rw-------    1 0     0             12 rootconf
-r--r--r--    1 0     3           1040 system
-r--r--r--    1 0     3           1035 system.prev
-rwxr-xr-x    1 0     3       14488016 vmunix.prev
drwxrwxrwx    5 0     0           1024 dlkm
drwxr-xr-x    2 0     3           1024 system.d
drwxr-xr-x    2 0     3           1024 krs
drwxr-xr-x    2 0     0           1024 krs_tmp
drwxr-xr-x    2 0     0           1024 krs_lkg
-r-xr-xr-x    1 2     2         845680 vpmon
-rw-------    1 0     0         102640 vpmon.dmp
-rw-------    2 0     0           8232 vpdb

cbuf partition_nameDisplays the information in the console buffer for the specified Virtual Partition. If no information is present in the buffer, you'll receive the following message:
MON> cbuf uhnjlvp1
    Buffer is empty


Many of these commands at MON> are informative. Let's now move on to vPars states.

Virtual Partition Boot States

When we boot a Virtual Partition, it progresses through load, then boot, and finally, up. There are other states in which you may find a Virtual Partition as well. Table 1-5 summarizes the states of Virtual Partitions at the time of this writing:

Table 1-5. Virtual Partitions States
vPars StateDescription
loadThe kernel image of a Virtual Partition is being loaded into memory. This is done by the Virtual Partition monitor.
bootThe Virtual Partition is in the process of booting. The kernel image has been successfully loaded by the Virtual Partition monitor.
upThe Virtual Partition has been successfully booted and is running.
shutThe Virtual Partition is in the process of shutting down.
downThe Virtual Partition is not running and is down.
crashThe Virtual Partition has experienced a panic and is crashing.
hungThe Virtual Partition is not responding and is hung.

These states are used later when we create and boot Virtual Partitions and watch them boot by issuing successive vparstatus commands. The following example shows the process of the Virtual Partition cable2 booting:

# vparboot -p cable2
# vparstatus
[Virtual Partition]                                                       Boot
Virtual Partition Name         State Attributes Kernel Path               Opts
============================== ===== ========== ========================= =====
cable1                         Up    Dyn,Manl   /stand/vmunix
cable2                         Load  Dyn,Manl   /stand/vmunix

[Virtual Partition Resource                CPU    Num        Memory (MB)
 Summary]                         CPU     Bound/   IO   # Ranges/
Virtual Partition Name          Min/Max  Unbound  devs  Total MB    Total MB
==============================  ================  ====  ====================
cable1                            2/  4    2   0     4    0/  0         2048
cable2                            2/  2    2   0     4    0/  0         1024
# vparstatus
[Virtual Partition]                                                       Boot
Virtual Partition Name         State Attributes Kernel Path               Opts
============================== ===== ========== ========================= =====
cable1                         Up    Dyn,Manl   /stand/vmunix
cable2                         Boot  Dyn,Manl   /stand/vmunix

[Virtual Partition Resource                CPU    Num        Memory (MB)
 Summary]                         CPU     Bound/   IO   # Ranges/
Virtual Partition Name          Min/Max  Unbound  devs  Total MB    Total MB
==============================  ================  ====  ====================
cable1                            2/  4    2   0     4    0/  0         2048
cable2                            2/  2    2   0     4    0/  0         1024
# vparstatus
[Virtual Partition]                                                       Boot
Virtual Partition Name         State Attributes Kernel Path               Opts
============================== ===== ========== ========================= =====
cable1                         Up    Dyn,Manl   /stand/vmunix
cable2                         Up    Dyn,Manl   /stand/vmunix

[Virtual Partition Resource                CPU    Num        Memory (MB)
 Summary]                         CPU     Bound/   IO   # Ranges/
Virtual Partition Name          Min/Max  Unbound  devs  Total MB    Total MB
==============================  ================  ====  ====================
cable1                            2/  4    2   0     4    0/  0         2048
cable2                            2/  2    2   0     4    0/  0         1024
#

This example shows cable2 progressing through the load, then boot, and finally, up. cable2 was booted from cable1 running on the same hardware. The system had already gone through the boot process when cable1 booted. The boot time for cable2 is very quick since most of the hardware is already running. The boot time for the first Virtual Partition is comparable to the boot time of a non-Virtual Partition system, but the subsequent vPars boot much more quickly.

setboot Command and vPars

The setboot command on a non-vPars system reads from and writes to stable storage. On a vPars system the setboot command interacts with the Virtual Partition database. Running setboot on a vPars system has the effects shown in Table 1-6:

Table 1-6. setboot and Virtual Partitions
vPars setboot OptionDescription
-aChanges the alternate boot path of the Virtual Partition.

To set the alternate boot path:

# setboot -a 0/8/0/0.8.0.5.0.0.0
-bSets the autoboot attribute of the Virtual Partition.

To set Autoboot on:

# setboot -b on
-pChanges the primary boot path of the Virtual Partition.

To set the primary boot path:

# setboot -p 0/0/1/1.2.0
-sHas no effect.
no optionsDisplays information about boot attributes.

The setboot command is one of the aspects of working with vPars that is different from a non-vPars system.

You can also set the primary and alternate boot paths with vparmodify.


..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.222.186.224