Chinaunix首页 | 论坛 | 博客
  • 博客访问: 929490
  • 博文数量: 245
  • 博客积分: 11429
  • 博客等级: 上将
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-15 00:16
文章存档

2011年(56)

2010年(174)

2009年(15)

分类: LINUX

2011-03-18 12:06:08

This HowTo guides you step-by-step through an openQRM Cloud setup on CentOS 5.5 for deploying physical Windows Systems. Hardware required for this HowTo are 2 physical systems.

1. Start with a fresh CentOS 5.5 installation

When installing the system with CentOS 5.5 in the partitioning layout screen select “Advanced storage configuration” partitioning. Create 3 Partitions:

    1. primary ext3 mounted at / (the rootfs)
    2. primary swap
    3. primary “lvm” (for the server-image store)

Important is to use a custom partition schema and create a dedicated partition for later storing the server-images (in this HowTo it
will be /dev/hda3). In the package-selection screen choose “Gnome Desktop Environment”. No need to install any extra software packages for now.

Please notice : In the SELinux screen please disable SELinux ! In the Firewall screen please disable the firewall!

When the installation finished reboot and login. Here a screenshot of the CentOS Desktop directly after the installation :

Below a console output of lsb_release showing the exact CentOS version. Please notice that all console commands in this HowTo are being executed as “root”.

[root@cloud ~]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.5 (Final)
Release: 5.5
Codename: Final
[root@cloud ~]#
2. Prepare the network

Now edit /etc/sysconfig/network-scripts/ifcfg-eth0 and setup static, private ip-address. (In this example it is 192.168.88.6. Please adapt the ip-configuration to your network-environment)

[root@cloud network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:02:b3:a0:d3:12
ONBOOT=yes
DHCP_HOSTNAME=cloud
IPADDR=192.168.88.6
NETMASK=255.255.255.0
GATEWAY=192.168.88.1
TYPE=Ethernet
[root@cloud network-scripts]#

Then apply the new network configuration by restarting the network.

[root@cloud network-scripts]# /etc/init.d/network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0:
[ OK ]
[root@cloud network-scripts]#

Now setup the static ip-address (in this HowTo “192.168.88.6”) and hostname in /etc/hosts. Please make sure that the hostname (in this Howto “cloud”) does not appear in the line starting with 127.0.0.1.

[root@cloud ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.88.6 cloud
::1 localhost6.localdomain6 localhost6
[root@cloud ~]#
3. Prepare storage for server images

Now prepare the dedicated partition to be used with lvm, then create a logical volume group “vol”.

[root@cloud ~]# pvcreate /dev/hda3
Physical volume "/dev/hda3" successfully created
[root@cloud ~]# vgcreate vol /dev/hda3
Volume group "vol" successfully created
[root@cloud ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vol 1 0 0 wz--n- 186.22G 186.22G
[root@cloud ~]#
4. Install the enterprise iSCSI target

Since CentOS does not provide a standard rpm package for the “ietd” (Enterprise iSCSI Target) this needs to be build from the sources.

[root@cloud ~]# yum -y install kernel-devel openssl-devel gcc rpm-build
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
....
Complete!
[root@cloud ~]#

Create ietd dir and download and unpack latest iscsi-target-[version].tar.gz from

[root@cloud ~]# mkdir ietd
[root@cloud ~]# cd ietd/
[root@cloud ietd]# wget
....
2002-06-10 20:41:12 (245 KB/s) - `iscsitarget-1.4.20.1.tar.gz' saved [137487/137487]
[root@cloud ietd]# tar -xzf iscsitarget-1.4.20.1.tar.gz
[root@cloud ietd]# cd iscsitarget-1.4.20.1

Compile:

[root@cloud iscsitarget-1.4.20.1]# make
Applying Patch compat-2.6.32.patch
patching file kernel/conn.c
Applying Patch compat-2.6.31.patch
....
CC [M] /root/ietd/iscsitarget-1.4.20.1/kernel/seq_list.o
LD [M] /root/ietd/iscsitarget-1.4.20.1/kernel/iscsi_trgt.o
Building modules, stage 2.
MODPOST
CC /root/ietd/iscsitarget-1.4.20.1/kernel/iscsi_trgt.mod.o
LD [M] /root/ietd/iscsitarget-1.4.20.1/kernel/iscsi_trgt.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.18-194.3.1.el5-i686'

Install:

[root@cloud iscsitarget-1.4.20.1]# make install
`usr/ietd' -> `/usr/sbin/ietd'
`usr/ietadm' -> `/usr/sbin/ietadm'
`etc/initd/initd.redhat' -> `/etc/init.d/iscsi-target'
install: creating directory `/etc/iet'
`etc/ietd.conf' -> `/etc/iet/ietd.conf'
`etc/initiators.allow' -> `/etc/iet/initiators.allow'
`etc/targets.allow' -> `/etc/iet/targets.allow'
`doc/manpages/ietadm.8' -> `/usr/share/man/man8/ietadm.8'
`doc/manpages/ietd.8' -> `/usr/share/man/man8/ietd.8'
`doc/manpages/ietd.conf.5' -> `/usr/share/man/man5/ietd.conf.5'
install: creating directory `/usr/share/doc/iscsitarget'
`ChangeLog' -> `/usr/share/doc/iscsitarget/ChangeLog'
`COPYING' -> `/usr/share/doc/iscsitarget/COPYING'
`RELEASE_NOTES' -> `/usr/share/doc/iscsitarget/RELEASE_NOTES'
`README' -> `/usr/share/doc/iscsitarget/README'
`README.vmware' -> `/usr/share/doc/iscsitarget/README.vmware'
`README.initiators' -> `/usr/share/doc/iscsitarget/README.initiators'
`kernel/iscsi_trgt.ko' -> `/lib/modules/2.6.18-194.3.1.el5/extra/iscsi/iscsi_trgt.ko'
Running depmod
[root@cloud iscsitarget-1.4.20.1]#

Adapt compatibility for the ietd.conf configfile location:

[root@cloud ~]# mv /etc/iet/ietd.conf /etc/iet/ietd.conf.org
[root@cloud ~]# > /etc/ietd.conf
[root@cloud ~]# ln -s /etc/ietd.conf /etc/iet/ietd.conf
[root@cloud ~]#

Start the iSCSI-Target:

[root@cloud ~]# /etc/init.d/iscsi-target start
Starting iSCSI Target: [ OK ]
[root@cloud ~]#
5. Prepare the database

For the openQRM Server Database backend please install the “mysql-server” package.

[root@cloud ~]# yum -y install mysql-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
....
Complete!
[root@cloud ~]#

After install start the mysqld service:

[root@cloud ~]# /etc/init.d/mysqld start
Initializing MySQL database: Installing MySQL system tables...
100521 14:44:53 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
100521 14:44:53 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
OK
Filling help tables...
100521 14:44:53 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
100521 14:44:53 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h cloud password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/bin/mysqlbug script!
The latest information about MySQL is available on the web at

Support MySQL by buying support/licenses at
[ OK ]
Starting MySQL: [ OK ]
[root@cloud ~]#

Now check that you can connect to it:

[root@cloud ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> quit
Bye
[root@cloud ~]#

Add mysqld to init via chkconfig:

[root@cloud bin]# chkconfig --add mysqld
[root@cloud bin]# chkconfig mysqld on
[root@cloud bin]# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@cloud bin]#
6. Install openQRM

We build openQRM from the sources which are available in the openQRM Projects subversion repository. The only requirement for that is to have “subversion (client)” and “make” available so please install both components.

[root@cloud ~]# yum -y install subversion
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
....
Complete!
[root@cloud ~]#

Now checkout the openQRM sources from the svn repository.

[root@cloud ~]# svn co openqrm
....
A openqrm/trunk/src/rpm/README
A openqrm/trunk/src/rpm/openqrm-entire.spec
A openqrm/branches
A openqrm/tags
Checked out revision 1996.
[root@cloud ~]#

Change to the src/ dir.

[root@cloud ~]# cd openqrm/trunk/src/
[root@cloud src]#

And run “make”. Please notice that this step requires a working internet connection. If no internet is available on this system you can download and unzip it in your home directory. This build-cache then will avoid any downloads.

[root@cloud src]# make
....
[root@cloud src]#

All compilation results are cached by the openQRM build-system. To ensure all components are build correctly simply run “make” again. The second (and every further “make” run) will just takes a few seconds. Here how the console output looks like for the second “make” run:

[root@cloud src]# make
Checking requirements for the compilation phase
openqrm-server requires: make, gcc, portmap, rsync, zlib-devel, wget, tar, bzip2, unzip, patch
found make installed
found gcc installed
found portmap installed
found rsync installed
found zlib-devel installed
found wget installed
found tar installed
found bzip2 installed
found unzip installed
found patch installed
openqrm-plugin-aoe-storage requires:
openqrm-plugin-aws requires:
openqrm-plugin-citrix requires:
openqrm-plugin-cloud requires:
openqrm-plugin-collectd requires:
openqrm-plugin-dhcpd requires:
openqrm-plugin-dns requires:
openqrm-plugin-equallogic-storage requires:
openqrm-plugin-highavailability requires:
openqrm-plugin-image-shelf requires:
openqrm-plugin-iscsi-storage requires:
openqrm-plugin-kvm requires:
openqrm-plugin-kvm-storage requires:
openqrm-plugin-linux-vserver requires:
openqrm-plugin-linuxcoe requires:
openqrm-plugin-local-server requires:
openqrm-plugin-local-storage requires:
openqrm-plugin-lvm-storage requires:
openqrm-plugin-nagios2 requires:
openqrm-plugin-nagios3 requires:
openqrm-plugin-netapp-storage requires:
openqrm-plugin-nfs-storage requires:
openqrm-plugin-puppet requires:
openqrm-plugin-sanboot-storage requires:
openqrm-plugin-solx86 requires:
openqrm-plugin-sshterm requires:
openqrm-plugin-tftpd requires:
openqrm-plugin-tmpfs-storage requires:
openqrm-plugin-vbox requires:
openqrm-plugin-vmware-esx requires:
openqrm-plugin-vmware-server requires:
openqrm-plugin-vmware-server2 requires:
openqrm-plugin-windows requires:
openqrm-plugin-xen requires:
openqrm-plugin-xen-storage requires:
openqrm-plugin-zabbix requires:
openqrm-plugin-zfs-storage requires:
Checking for required components to compile openQRM finished successfully
if [ -d ./thirdparty ]; then mkdir -p ../buildtmp; cp -aR ./thirdparty/* ../buildtmp/; fi
-> found component gpxe (undionly.kpxe.0.9.9.tgz) already downloaded
-> found component kvm-nic-bios (kvm-nic-bios-1.1.tgz) already downloaded
-> found component openqrm-client.windows (openQRM-Client-4.6.1-setup.exe) already downloaded
-> found component sshterm-component (openqrm-plugin-sshterm-components-1.0.tgz) already downloaded
Creating the default initrd-template
-> found component busybox (busybox-1.14.2.tar.bz2) already downloaded
-> Found busybox-1.14.2/_install/bin/busybox already in the build-cache
-> Skipping compilation, taking the ready built component from the cache
-> found component pciutils (pciutils-3.1.4.tar.gz) already downloaded
-> Found pciutils-3.1.4/pcimodules already in the build-cache
-> Skipping compilation, taking the ready built component from the cache
-> found component dropbear (dropbear-0.52.tar.gz) already downloaded
-> Found dropbear-0.52/dropbear already in the build-cache
-> Skipping compilation, taking the ready built component from the cache
Adding /sbin/portmap to default initrd-template
Adding /sbin/rpc.statd to default initrd-template
Adding /bin/bash to default initrd-template
Adding /usr/bin/rsync to default initrd-template
Adding /usr/bin/wget to default initrd-template
Adding /sbin/modprobe to default initrd-template
Adding /sbin/depmod to default initrd-template
Adding /sbin/insmod to default initrd-template
Adding /sbin/lsmod to default initrd-template
Adding /sbin/mke2fs to default initrd-template
Adding /sbin/sfdisk to default initrd-template
Adding /sbin/udevd to default initrd-template
Adding /lib/udev/vol_id to default initrd-template
-> found component gpxe (undionly.kpxe.0.9.9.tgz) already downloaded
-> found component kvm-nic-bios (kvm-nic-bios-1.1.tgz) already downloaded
-> found component openqrm-client.windows (openQRM-Client-4.6.1-setup.exe) already downloaded
-> found component sshterm-component (openqrm-plugin-sshterm-components-1.0.tgz) already downloaded
-> found component adodb (adodb498.tgz) already downloaded
-> found component jquery (jquery-1.3.2.tgz) already downloaded
-> found component js-interface (interface_1.2.zip) already downloaded
-> found component openqrm-client.centos.i386 (openqrm-client.4.6.1.centos.i386.tgz) already downloaded
-> found component openqrm-client.centos.x86_64 (openqrm-client.4.6.1.centos.x86_64.tgz) already downloaded
-> found component openqrm-client.debian.i386 (openqrm-client.4.6.1.debian.i386.tgz) already downloaded
-> found component openqrm-client.debian.x86_64 (openqrm-client.4.6.1.debian.x86_64.tgz) already downloaded
-> found component openqrm-client.ubuntu.i386 (openqrm-client.4.6.1.ubuntu.i386.tgz) already downloaded
-> found component openqrm-client.ubuntu.x86_64 (openqrm-client.4.6.1.ubuntu.x86_64.tgz) already downloaded
-> found component openqrm-initrd-template.centos.i386 (openqrm-initrd-template.4.6.1.centos.i386.tgz) already downloaded
-> found component openqrm-initrd-template.centos.x86_64 (openqrm-initrd-template.4.6.1.centos.x86_64.tgz) already download
-> found component openqrm-initrd-template.debian.i386 (openqrm-initrd-template.4.6.1.debian.i386.tgz) already downloaded
-> found component openqrm-initrd-template.debian.x86_64 (openqrm-initrd-template.4.6.1.debian.x86_64.tgz) already download
-> found component openqrm-initrd-template.ubuntu.i386 (openqrm-initrd-template.4.6.1.ubuntu.i386.tgz) already downloaded
-> found component openqrm-initrd-template.ubuntu.x86_64 (openqrm-initrd-template.4.6.1.ubuntu.x86_64.tgz) already download
[root@cloud src]#

Then run “make install”.

[root@cloud src]# make install
include/
include/openqrm-plugin-local-storage-functions
bin/
....
Creating the openqrm-client boot-service package
[root@cloud src]#

And finally initialize and start openQRM by “sudo make start”.

[root@cloud src]# make start
Checking the requirements for RedHat based systems ...
openqrm-server requires: httpd, php, php-mysql, php-soap, mysql, syslinux, screen, procmail, openssl
-> found httpd installed
NOTICE: Trying to automatically install php ...
Loaded plugins: fastestmirror
....
Checking for required components finished successfully
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.88.6 for Server
[ OK ]
First startup detected. Running initialization.
Looking for syslinux/pxelinux.0...found: /usr/lib/syslinux/pxelinux.0
Creating custom apache config.../etc/httpd/conf.d/openqrm-httpd.conf
Checking /usr/share/openqrm/etc/openqrm-server.conf for OP[ OK ]B_PROTOCOL=https..Reloading httpd:
Adding password for user openqrm
Initializing dropbear...
Will output 1024 bit rsa secret key to '/usr/share/openqrm/etc/dropbear/dropbear_rsa_host_key'
Generating key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgmOa49UMeOPqid06cR96yfRD/SQ98J1REpLKyyJ518iFFQyGKb9j2quZD+8FfKYt6rgFgS6
kGw95qJf6lqYc/rIH5ezcl4bVCn0Zo9pQkTyF496+iAp6AbPOX9KfBivu+5KWc7sfxOiDWGErPhzTGSkvjxwDAu2PkXAvTjUHMhhXxLk= root@cloud
Fingerprint: md5 de:cc:34:cb:2b:e5:b1:3d:50:dd:cc:f0:b5:ca:e9:e5
Adding public key to /root/.ssh/authorized_keys...
Starting the openQRM-server ver. 4.6.
Initialization complete. Please configure your openQRM Server at:
-> User: openqrm -> Password: openqrm
[root@cloud src]#

“make start” triggers a check for the openQRM runtime-dependencies which will install all additional required packages automatically. At first start the openQRM Server is initialized. We are now ready to configure the openQRM Server via the Web-UI.

7. Configure openQRM

Login to your openQRM Server at []. User and password is “openqrm”. Please make sure to change this default credentials after the configuration phase.

The step-by-step Web-based configuration guides you through the setup phase. First select the first interface (eth0) as the openQRM management network-device.

Then select “myslq” as the Database to use as the openQRM backend.

And then configure the Database connection credentials.

openQRM is now fully configured and will forward to the Datacenter Dashboard.

The openQRM Datacenter Dashboard

8. Create a Windows image

Via the Plugin-manager please enable and start the following plug-ins in the same sequence as listed below:

  • dhcpd
  • tftpd
  • sanboot-storage
  • windows
  • cloud

After that please go to Base → Components → Create → Storage and create a new Storage from the type “Sanboot-Storage (iSCSI)”. Select the openQRM Server “resource”

Here just give the Storage Server a name and save.

Here how the Storage List looks now.

Click on the “Mgmt” button of the new created “sanboot” Storage Server.

Please select the “vol” volume group.

Now create a new volume with the name “windowsxp” and the size slightly bigger than the local harddisk of the system which is used to create the windows “image”. In this HowTo a 40GB local disk is used to install and transfer a Windows installation to a Lun on an iSCSI-Target. The volume we create is 41000MB so a little bit bigger than the actual physical disk.

Here how the Volume List looks now.

On the console it now looks like:

[root@cloud ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
windowsxp vol -wi-ao 40.04G
[root@cloud ~]# cat /etc/ietd.conf
Target windowsxp:windowsxp
Lun 0 Path=/dev/mapper/vol-windowsxp,Type=fileio
[root@cloud ~]#

Install Windows on the local disk of the second system

For this HowTo we used Windows XP Professional and exactly followed the GPXE-Instructions at
We recommend to do a fresh install and full format of the local harddisk during the install procedure !

Please notice:
The method “install local + transfer to iSCSI Lun” is used because Windows XP does not support to be installed directly on the iSCSI-Target. Newer versions of Windows (e.g. Windows 7) can be directly installed on to the iSCSI-Target. →

After Windows is installed please add the “iSCSI Boot” support. Open a web browser and point it to

On the webpage download the “Initiator 2.x boot-buildxxx-arch/lang.exe according to your Windows installation. Here we pick the i386/X86 EN one.

Download this file to your Desktop.

Please execute it and follow the installation instructions.

Now please download the Windows SAN Boot Configuration Driver from

This file is a ZIP-File containing the SAN Boot driver. Please double-click and extract it to your Desktop.

Double-click on the extracted directory.

Double-click the sanbootconf directory.

Now run the sanbootconf Installer and follow the instructions.

Accept the GNU General Public License.

Installation completed.

Transfer disk content using nc

To transfer the disk content of the local install Windows System to the iSCSI Lun on the “Sanboot” Storage Server we are using a simply client-server raw data transfer via the combination of “nc” and “dd”. Please find more details at

After the Windows installation reboot the system and configure the boot-sequence in its BIOS to start from network (pxe-boot). Save the changed bios settings and the system will now boot into openQRM as new “idle” resource from the type “Physical
System”.

When the system is in the “idle” state please follow the steps below to transfer the disk-content from the physical windows system to the iSCSI Lun:

1. start a nc listener on the Windows logical volume

[root@cloud ~]# ls /dev/mapper/vol-windowsxp
/dev/mapper/vol-windowsxp
[root@cloud ~]# nc -l 12345 | dd of=/dev/mapper/vol-windowsxp
# this command won't return but listen on port 12345 to submit data
# which it reads bitwise from the network port to /dev/mapper/vol-windowsxp

2. login via the “openqrm login” command
Here the syntax of the “openqrm login” comand:

/usr/share/openqrm/bin/openqrm login -i [ip-address-of-the-idle-resource-withe-the-windows-installed-on-local-disk]
[root@cloud ~]# cd /usr/share/openqrm/bin/
[root@cloud bin]# ./openqrm login -i 192.168.88.251
Login to resource 192.168.88.251 ...
Host '192.168.88.251' key accepted unconditionally.
(fingerprint md5 ff:5f:e7:60:ae:14:74:4a:39:15:8c:a6:62:98:73:0b)
bash-3.2#

Please notice that this shell does not have a PATH environment var set. Commands can be run using the full path in the commandline.

Here how to identify the local disk with the windows installation

bash-3.2# cat /proc/partitions
major minor #blocks name
8 0 39082680 sda
8 1 39070048 sda1
bash-3.2# /sbin/fdisk -l /dev/sda
Disk /dev/sda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 4864 39070048+ 7 HPFS/NTFS
bash-3.2#

3. dd to remote nc listener
Use the combination of dd + nc to transfer the disk content to the remote logical volume.

bash-3.2#
bash-3.2# dd if=/dev/sda | nc 192.168.88.6 12345

Please notice that this can take a while depending on the disk size and network speed. Wait until this command returns. This means the full disk content was transferred to the remote logical volume.

On the openQRM Server you can use “kill -USR1 [pid-of-dd-process]” to trigger dd to report how many bytes are transferred. When it finished it will look like:

..
78165360+0 records in
78165360+0 records out
40020664320 bytes (40 GB) copied, 6322.11 seconds, 6.3 MB/s
[root@cloud ~]#

Run “sync” to ensure all bits are flushed to the logical volume:

[root@cloud ~]# sync
[root@cloud ~]#
9. Pre-configure the Windows image

Poweroff the “idle” resource (the one with the windows installation on the local disk), remove the disk and reboot it through network.

Please notice : Make sure to have the BIOS boot-sequence set to network-boot only.

When the system fully rebooted to “idle” state again create logical “image” in openQRM.

Go to Base → Components → Create → Image and select the “Sanboot” Storage Server.

Give a name for the “image” and select the “windowsxp” volume as the root-device.

Save the image. Here how the “image” list will look like now.

Now create an “appliance”.
Please go to Base → Appliance → Create and select the “idle” resource.

Name the “appliance” windowsxp, select the “default” kernel and the “windowsxp” image. Save the appliance.

Start “appliance”

Please find a video of the full boot-up sequence of the Windows system booting from the remote iSCSI Storage Server at Youtube

The Windows “image” is deployed and working fine now. Still we need to further pre-configure it to enable management through openQRM. First step it to create a Windows User “root” on the deployed Windows “image”.

Next step is to Install openQRM-Client on the Windows “image”
Please open a Web-Browser and login to the openQRM Server.

Go to Plugins → Deployment → Windows → About

and download the Windows openQRM-Client Installer.

Run the openQRM-Client Installer and follow the instructions.

Now please run “gpedit.msc” and add the permission to “remote shutdown” to user “root”.

Please notice: If the Windows Firewall is active you need to also open TCP port 22 !

After installation of the openQRM-Client on the deployed Windows “image” the “resource” get active in openQRM. openQRM can now manage this Windows “image”.

10. openQRM Cloud configuration

After that please go to Plugins → Cloud → Configuration → Main Config and configure the following items:

  • cloud_admin_email → your valid email address (may be a local address depending on your postfix setup)
  • auto_provision → true
  • external_portal_url → (optional) external Cloud Portal URL
  • request_physical_systems → yes
  • auto_give_ccus → 100
  • show_disk_resize → (optional) true
  • show_private_image → true
  • cloud_selector → true
  • cloud_currency → (optional) set to US or Euro
  • cloud_1000_ccus → How much 1000 CCUs are worh in US/Euro

For all other configuration items you can continue with the defaults. Save your configuration.

Here a screenshot of the Main Cloud Configuration page :

Next step is to configure the Cloud Products via the “Cloud-Selector”.

Go to Plugins → Cloud → Configuration → Products → Kernel and create a new “Windows” kernel product.

It will look like this.

Now create a “Memory” product with the exact size of the memory available on the 2. physical system (the system the windows “image” ig going to be deployed to). In this HowTo we used a system with 3008MB physical memory. Please adjust the memory size according to your physical system.

It will look like this.

Now create a “Physical System” virtualization product.

It will look like this.

The next step is to tell the Cloud which “images” to show to the CloudUsers. Go to Plugins → Cloud → Configuration → Private Images and select “All” in the checkboxes for the windowsxp “image”.

Following step is to create one or more CloudUser. Go to Plugins → Cloud → User and add a new Clouduser with a valid email address.

The CloudUser List now looks like the screenshot below. As the Cloud-Administrator you can simply login as a specific CloudUser by clicking on the CloudUser name.

This is the openQRM Cloud-Portal after login:

Click on the 2. Tab “Visual Cloud Designer”

The Visual Cloud Designer shows all components available in the Cloud. You can now start constructing your Cloud-Appliance by drag-and-drop.

Then check the costs for this Appliance (hourly, daily and monthly).

And with a single click request this custom system from the openQRM Cloud.

For Cloud deployment openQRM automatically creates a LVM snapshot of the origin Windows “image”. That means that the (remote) hard-disk of the Windows “image” is actually a LVM snapshot. In the Storage Manager the Cloud-Volume is marked with the “s” (snapshot) attribute.

On the console this looks like:

[root@cloud ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
2.cloud_1_1_ vol swi-ao 19.53G windowsxp 0.06
windowsxp vol owi-ao 40.04G
[root@cloud ~]#

License thoughts:
Please notice that you are responsible to take care of Windows License management when you are deploying multiply snapshots of the Windows OS !

11. How to continue from here
  • Using Sanboot-storage with AOE deployment
  • Separating Storage and openQRM on dedicated Systems
  • openQRM Server HA Setup
  • Adding Virtualization Host from different types
  • Adding more Physical Systems
  • Adding more Storage Systems
  • Enabling automatic Monitoring
  • IP- and Network-Management
  • Cloud-Billing
  • Cloud Integration / SOAP WebService
阅读(4285) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~