<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Emkravts</id>
	<title>OpenVZ Virtuozzo Containers Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Emkravts"/>
	<link rel="alternate" type="text/html" href="https://wiki.openvz.org/Special:Contributions/Emkravts"/>
	<updated>2026-06-10T00:59:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Using_veth_and_brctl_for_protecting_HN_and_saving_IP_addresses&amp;diff=3248</id>
		<title>Using veth and brctl for protecting HN and saving IP addresses</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Using_veth_and_brctl_for_protecting_HN_and_saving_IP_addresses&amp;diff=3248"/>
		<updated>2007-07-03T11:40:33Z</updated>

		<summary type="html">&lt;p&gt;Emkravts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Configuration described below has been suggested by Ugo123. Appreciates.&lt;br /&gt;
&lt;br /&gt;
Consider we are facing the following task:&lt;br /&gt;
&lt;br /&gt;
1) We have limited range of IP adresses granted by ISP. &lt;br /&gt;
We want to assign as much granted IPs to VEs as possible.&lt;br /&gt;
We do not want to protect VEs from Internet.&lt;br /&gt;
2) We want to protect the HN OS (VE0) from Internet and make it possible to manage VEs from VE0 within local area network.&lt;br /&gt;
&lt;br /&gt;
Assume we have a HN with 2 ethernet cards (interfaces eth0 and eth1), OpenVZ kernel 2.6.18-028stab033, vzctl version 3.0.16,&lt;br /&gt;
bridge-utils version 1.1. OpenVZ installation process is covered by http://wiki.openvz.org/Quick_installation.&lt;br /&gt;
&lt;br /&gt;
Task can be effectively solved by setting up the configuration presented on Figure 1.&lt;br /&gt;
&lt;br /&gt;
Figure 1: Effective configuration. 10.0.98.96-10.0.98.X - range of IP-adresses granted by ISP, 192.168.1.136 - IP address from LAN&lt;br /&gt;
&lt;br /&gt;
[[Image:fig.jpg]]&lt;br /&gt;
&lt;br /&gt;
Initial ifconfig output of HN is the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# ifconfig&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:34&lt;br /&gt;
          inet addr:192.168.1.136  Bcast:192.168.3.255  Mask:255.255.252.0&lt;br /&gt;
          inet6 addr: fe80::230:48ff:fe5b:ab34/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:3122 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:246 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:325879 (318.2 KiB)  TX bytes:57278 (55.9 KiB)&lt;br /&gt;
          Interrupt:20&lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:35&lt;br /&gt;
          inet addr:192.168.0.32  Bcast:192.168.3.255  Mask:255.255.252.0&lt;br /&gt;
          inet6 addr: fe80::213:d4ff:fe90:4d50/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:603734 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:36627 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)&lt;br /&gt;
          Interrupt:21&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:1376 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:1376 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:2078718 (1.9 MiB)  TX bytes:2078718 (1.9 MiB)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Let us pass through the setup process step by step.&lt;br /&gt;
&lt;br /&gt;
1) Create 2 VEs on the HN as described in http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf.&lt;br /&gt;
For testing purposes I've used opensuse-10 precreated template from openvz.org:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# cd /vz/template/cache&lt;br /&gt;
[HN]# wget http://download.openvz.org/template/precreated/opensuse-10-i386-default.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create VE 101 and assign it one of the IP adresses obtained from ISP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# vzctl create 101 --ostemplate opensuse-10-i386-default --ipadd 10.0.98.96&lt;br /&gt;
[HN]# vzctl set 101 --userpasswd root:XXX --save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And do the same for VE 102 ... VE N. When ready - start VEs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# vzctl start 101&lt;br /&gt;
[HN]# vzlist -a&lt;br /&gt;
      VEID      NPROC STATUS  IP_ADDR         HOSTNAME&lt;br /&gt;
       101          4 running 10.0.98.96      -&lt;br /&gt;
       102          4 running 10.0.98.97      -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2) By default VEs use venet device for networking (http://wiki.openvz.org/Venet). But current&lt;br /&gt;
configuration requires using alternative networking - through veth devices (http://wiki.openvz.org/Virtual_Ethernet_device).&lt;br /&gt;
Switch VE 101 to veth by doing the following:&lt;br /&gt;
&lt;br /&gt;
MAC address needed by eth0 of VE 101 and veth101.0 should be generated by easymac:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# wget http://www.easyvmx.com/software/easymac.sh&lt;br /&gt;
[HN]# chmod 0777 easymac.sh&lt;br /&gt;
[HN]# ./easymac.sh -R&lt;br /&gt;
00:0C:29:70:BB:34&lt;br /&gt;
[HN]# ./easymac.sh -R&lt;br /&gt;
00:0C:29:C0:2E:07&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace venet by veth device on HN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# ifconfig venet0:0 down&lt;br /&gt;
[HN]# vzctl set 101 --netif_add eth0,00:0C:29:70:BB:34,veth101.0,00:0C:29:C0:2E:07 --save&lt;br /&gt;
[HN]# ifconfig veth101.0 0&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/veth101.0/forwarding&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/veth101.0/proxy_arp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enter VE and tune ifconfig within VE:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[VE 101]# vzctl enter 101&lt;br /&gt;
[VE 101]# ifconfig venet0:0 down&lt;br /&gt;
[VE 101]# ifconfig venet0 down&lt;br /&gt;
[VE 101]# ifconfig eth0 0&lt;br /&gt;
[VE 101]# ip addr add 10.0.98.96 dev eth0&lt;br /&gt;
[VE 101]# ip route add default dev eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The same (whole item 2) should be done for VE 102 .. VE N.&lt;br /&gt;
3) Now we should eliminate the IP address on eth1:&lt;br /&gt;
[HN]# vim /etc/sysconfig/network-scripts/ifcfg-eth1&lt;br /&gt;
&lt;br /&gt;
Edit like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
#BOOTPROTO=dhcp                  &amp;lt;&amp;lt;== comment&lt;br /&gt;
HWADDR=XX:XX:XX:XX:XX:XX&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and save changes (:wq).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# /etc/init.d/network restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And turn off forwarding and proxy_arp for eth1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# ifconfig eth1 0&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/eth1/forwarding&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/eth1/proxy_arp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4) Create br0 bridge uniting eth1, veth101.0, ..., vethN.0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# brctl addbr br0&lt;br /&gt;
[HN]# brctl addif br0 eth1&lt;br /&gt;
[HN]# brctl addif br0 veth101.0&lt;br /&gt;
..., veth102.0, vethN.0 etc.&lt;br /&gt;
[HN]# ifconfig br0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And turn off frowarding and proxy_arp for br0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/br0/forwarding&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/br0/proxy_arp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is very important action. If skipped - network&lt;br /&gt;
can be broken on further steps due to incoming arp-requests provoked storm.&lt;br /&gt;
&lt;br /&gt;
As a result of above listed actions the ifconfig output like the following should be listed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# ifconfig&lt;br /&gt;
br0       Link encap:Ethernet  HWaddr 00:0C:29:A7:A9:D9&lt;br /&gt;
          inet6 addr: fe80::20c:29ff:fea7:a9d9/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:79 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:2972 (2.9 KiB)  TX bytes:4390 (4.2 KiB)&lt;br /&gt;
&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr 00:30:48:5B:AB:34&lt;br /&gt;
          inet addr:192.168.1.136  Bcast:192.168.3.255  Mask:255.255.252.0&lt;br /&gt;
          inet6 addr: fe80::230:48ff:fe5b:ab34/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:347855 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:4778 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:35964081 (34.2 MiB)  TX bytes:698801 (682.4 KiB)&lt;br /&gt;
          Interrupt:20&lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 00:30:48:5B:AB:35&lt;br /&gt;
          inet6 addr: fe80::230:48ff:fe5b:ab35/64 Scope:Link&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:322 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:182 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:41943 (40.9 KiB)  TX bytes:21338 (20.8 KiB)&lt;br /&gt;
          Interrupt:21&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:1376 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:1376 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:2078718 (1.9 MiB)  TX bytes:2078718 (1.9 MiB)&lt;br /&gt;
&lt;br /&gt;
veth101.0 Link encap:Ethernet  HWaddr 00:0C:29:C0:2E:07&lt;br /&gt;
          inet6 addr: fe80::20c:29ff:fec0:2e07/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:363 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:397 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:31134 (30.4 KiB)  TX bytes:31440 (30.7 KiB)&lt;br /&gt;
&lt;br /&gt;
veth102.0 Link encap:Ethernet  HWaddr 00:0C:29:A7:A9:D9&lt;br /&gt;
          inet6 addr: fe80::20c:29ff:fea7:a9d9/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:36 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:60 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:1840 (1.7 KiB)  TX bytes:2350 (2.2 KiB)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
5) That is all. It's time to test the obtained configuration.&lt;br /&gt;
Now plug eth1 of HN into network wall outlet provided by ISP and carry out the following testing:&lt;br /&gt;
&lt;br /&gt;
- It should be tested that VEs are accessible from Internet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[INET]# ssh root@10.0.98.96&lt;br /&gt;
[VE 101]#  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- HN is not accessible from Internet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[INET]# ssh root@192.168.1.136&lt;br /&gt;
inaccessible&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- VEs can be managed from HN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# vzctl enter 101&lt;br /&gt;
[VE 101]# ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- VEs VE 101, VE 102 .. VE N &amp;quot;see&amp;quot; each other (ping).&lt;br /&gt;
&lt;br /&gt;
If all the steps are done as written, it should work.&lt;br /&gt;
Enjoy.&lt;/div&gt;</summary>
		<author><name>Emkravts</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=File:Fig.jpg&amp;diff=3247</id>
		<title>File:Fig.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=File:Fig.jpg&amp;diff=3247"/>
		<updated>2007-07-03T11:38:53Z</updated>

		<summary type="html">&lt;p&gt;Emkravts: Illustration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Illustration&lt;/div&gt;</summary>
		<author><name>Emkravts</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Using_veth_and_brctl_for_protecting_HN_and_saving_IP_addresses&amp;diff=3246</id>
		<title>Using veth and brctl for protecting HN and saving IP addresses</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Using_veth_and_brctl_for_protecting_HN_and_saving_IP_addresses&amp;diff=3246"/>
		<updated>2007-07-03T11:33:25Z</updated>

		<summary type="html">&lt;p&gt;Emkravts: New page: Configuration described below has been suggested by Ugo123. Appreciates.  Consider we are facing the following task:  1) We have limited range of IP adresses granted by ISP.  We want to as...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Configuration described below has been suggested by Ugo123. Appreciates.&lt;br /&gt;
&lt;br /&gt;
Consider we are facing the following task:&lt;br /&gt;
&lt;br /&gt;
1) We have limited range of IP adresses granted by ISP. &lt;br /&gt;
We want to assign as much granted IPs to VEs as possible.&lt;br /&gt;
We do not want to protect VEs from Internet.&lt;br /&gt;
2) We want to protect the HN OS (VE0) from Internet and make it possible to manage VEs from VE0 within local area network.&lt;br /&gt;
&lt;br /&gt;
Assume we have a HN with 2 ethernet cards (interfaces eth0 and eth1), OpenVZ kernel 2.6.18-028stab033, vzctl version 3.0.16,&lt;br /&gt;
bridge-utils version 1.1. OpenVZ installation process is covered by http://wiki.openvz.org/Quick_installation.&lt;br /&gt;
&lt;br /&gt;
Task can be effectively solved by setting up the configuration presented on Figure 1.&lt;br /&gt;
&lt;br /&gt;
Figure 1: Effective configuration. 10.0.98.96-10.0.98.X - range of IP-adresses granted by ISP, 192.168.1.136 - IP address from LAN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Initial ifconfig output of HN is the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# ifconfig&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:34&lt;br /&gt;
          inet addr:192.168.1.136  Bcast:192.168.3.255  Mask:255.255.252.0&lt;br /&gt;
          inet6 addr: fe80::230:48ff:fe5b:ab34/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:3122 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:246 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:325879 (318.2 KiB)  TX bytes:57278 (55.9 KiB)&lt;br /&gt;
          Interrupt:20&lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:35&lt;br /&gt;
          inet addr:192.168.0.32  Bcast:192.168.3.255  Mask:255.255.252.0&lt;br /&gt;
          inet6 addr: fe80::213:d4ff:fe90:4d50/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:603734 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:36627 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)&lt;br /&gt;
          Interrupt:21&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:1376 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:1376 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:2078718 (1.9 MiB)  TX bytes:2078718 (1.9 MiB)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Let us pass through the setup process step by step.&lt;br /&gt;
&lt;br /&gt;
1) Create 2 VEs on the HN as described in http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf.&lt;br /&gt;
For testing purposes I've used opensuse-10 precreated template from openvz.org:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# cd /vz/template/cache&lt;br /&gt;
[HN]# wget http://download.openvz.org/template/precreated/opensuse-10-i386-default.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create VE 101 and assign it one of the IP adresses obtained from ISP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# vzctl create 101 --ostemplate opensuse-10-i386-default --ipadd 10.0.98.96&lt;br /&gt;
[HN]# vzctl set 101 --userpasswd root:XXX --save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And do the same for VE 102 ... VE N. When ready - start VEs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# vzctl start 101&lt;br /&gt;
[HN]# vzlist -a&lt;br /&gt;
      VEID      NPROC STATUS  IP_ADDR         HOSTNAME&lt;br /&gt;
       101          4 running 10.0.98.96      -&lt;br /&gt;
       102          4 running 10.0.98.97      -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2) By default VEs use venet device for networking (http://wiki.openvz.org/Venet). But current&lt;br /&gt;
configuration requires using alternative networking - through veth devices (http://wiki.openvz.org/Virtual_Ethernet_device).&lt;br /&gt;
Switch VE 101 to veth by doing the following:&lt;br /&gt;
&lt;br /&gt;
MAC address needed by eth0 of VE 101 and veth101.0 should be generated by easymac:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# wget http://www.easyvmx.com/software/easymac.sh&lt;br /&gt;
[HN]# chmod 0777 easymac.sh&lt;br /&gt;
[HN]# ./easymac.sh -R&lt;br /&gt;
00:0C:29:70:BB:34&lt;br /&gt;
[HN]# ./easymac.sh -R&lt;br /&gt;
00:0C:29:C0:2E:07&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace venet by veth device on HN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# ifconfig venet0:0 down&lt;br /&gt;
[HN]# vzctl set 101 --netif_add eth0,00:0C:29:70:BB:34,veth101.0,00:0C:29:C0:2E:07 --save&lt;br /&gt;
[HN]# ifconfig veth101.0 0&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/veth101.0/forwarding&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/veth101.0/proxy_arp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enter VE and tune ifconfig within VE:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[VE 101]# vzctl enter 101&lt;br /&gt;
[VE 101]# ifconfig venet0:0 down&lt;br /&gt;
[VE 101]# ifconfig venet0 down&lt;br /&gt;
[VE 101]# ifconfig eth0 0&lt;br /&gt;
[VE 101]# ip addr add 10.0.98.96 dev eth0&lt;br /&gt;
[VE 101]# ip route add default dev eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The same (whole item 2) should be done for VE 102 .. VE N.&lt;br /&gt;
3) Now we should eliminate the IP address on eth1:&lt;br /&gt;
[HN]# vim /etc/sysconfig/network-scripts/ifcfg-eth1&lt;br /&gt;
&lt;br /&gt;
Edit like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEVICE=eth1&lt;br /&gt;
#BOOTPROTO=dhcp                  &amp;lt;&amp;lt;== comment&lt;br /&gt;
HWADDR=XX:XX:XX:XX:XX:XX&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and save changes (:wq).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# /etc/init.d/network restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And turn off forwarding and proxy_arp for eth1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# ifconfig eth1 0&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/eth1/forwarding&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/eth1/proxy_arp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4) Create br0 bridge uniting eth1, veth101.0, ..., vethN.0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# brctl addbr br0&lt;br /&gt;
[HN]# brctl addif br0 eth1&lt;br /&gt;
[HN]# brctl addif br0 veth101.0&lt;br /&gt;
..., veth102.0, vethN.0 etc.&lt;br /&gt;
[HN]# ifconfig br0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And turn off frowarding and proxy_arp for br0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/br0/forwarding&lt;br /&gt;
[HN]# echo 0 &amp;gt; /proc/sys/net/ipv4/conf/br0/proxy_arp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is very important action. If skipped - network&lt;br /&gt;
can be broken on further steps due to incoming arp-requests provoked storm.&lt;br /&gt;
&lt;br /&gt;
As a result of above listed actions the ifconfig output like the following should be listed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# ifconfig&lt;br /&gt;
br0       Link encap:Ethernet  HWaddr 00:0C:29:A7:A9:D9&lt;br /&gt;
          inet6 addr: fe80::20c:29ff:fea7:a9d9/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:79 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:2972 (2.9 KiB)  TX bytes:4390 (4.2 KiB)&lt;br /&gt;
&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr 00:30:48:5B:AB:34&lt;br /&gt;
          inet addr:192.168.1.136  Bcast:192.168.3.255  Mask:255.255.252.0&lt;br /&gt;
          inet6 addr: fe80::230:48ff:fe5b:ab34/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:347855 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:4778 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:35964081 (34.2 MiB)  TX bytes:698801 (682.4 KiB)&lt;br /&gt;
          Interrupt:20&lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 00:30:48:5B:AB:35&lt;br /&gt;
          inet6 addr: fe80::230:48ff:fe5b:ab35/64 Scope:Link&lt;br /&gt;
          UP BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:322 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:182 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:41943 (40.9 KiB)  TX bytes:21338 (20.8 KiB)&lt;br /&gt;
          Interrupt:21&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:1376 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:1376 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:2078718 (1.9 MiB)  TX bytes:2078718 (1.9 MiB)&lt;br /&gt;
&lt;br /&gt;
veth101.0 Link encap:Ethernet  HWaddr 00:0C:29:C0:2E:07&lt;br /&gt;
          inet6 addr: fe80::20c:29ff:fec0:2e07/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:363 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:397 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:31134 (30.4 KiB)  TX bytes:31440 (30.7 KiB)&lt;br /&gt;
&lt;br /&gt;
veth102.0 Link encap:Ethernet  HWaddr 00:0C:29:A7:A9:D9&lt;br /&gt;
          inet6 addr: fe80::20c:29ff:fea7:a9d9/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:36 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:60 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:1840 (1.7 KiB)  TX bytes:2350 (2.2 KiB)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
5) That is all. It's time to test the obtained configuration.&lt;br /&gt;
Now plug eth1 of HN into network wall outlet provided by ISP and carry out the following testing:&lt;br /&gt;
&lt;br /&gt;
- It should be tested that VEs are accessible from Internet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[INET]# ssh root@10.0.98.96&lt;br /&gt;
[VE 101]#  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- HN is not accessible from Internet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[INET]# ssh root@192.168.1.136&lt;br /&gt;
inaccessible&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- VEs can be managed from HN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HN]# vzctl enter 101&lt;br /&gt;
[VE 101]# ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- VEs VE 101, VE 102 .. VE N &amp;quot;see&amp;quot; each other (ping).&lt;br /&gt;
&lt;br /&gt;
If all the steps are done as written, it should work.&lt;br /&gt;
Enjoy.&lt;/div&gt;</summary>
		<author><name>Emkravts</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=How_to_use_OpenVZ_as_a_XEN_guest_OS_(for_x86_platform)&amp;diff=3164</id>
		<title>How to use OpenVZ as a XEN guest OS (for x86 platform)</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=How_to_use_OpenVZ_as_a_XEN_guest_OS_(for_x86_platform)&amp;diff=3164"/>
		<updated>2007-06-09T12:52:48Z</updated>

		<summary type="html">&lt;p&gt;Emkravts: New page: 1. Intro  Recently released RHEL5 kernel supports compatibility with XEN 3.0. It means that RHEL5 kernel built with config that enables XEN can be used as guest OS in both privileged Dom0 ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Intro&lt;br /&gt;
&lt;br /&gt;
Recently released RHEL5 kernel supports compatibility with XEN 3.0. It means that&lt;br /&gt;
RHEL5 kernel built with config that enables XEN can be used as guest OS in both privileged Dom0 and unprivileged DomU XEN domains. RHEL5 - based OpenVZ kernel 028stab033 also contains support for XEN compatibility. Current article reports on how to virtualize xen DomU by using xen-compatible OpenVZ kernel el5.028stab034.&lt;br /&gt;
&lt;br /&gt;
Detailed description of XEN 3.0, user guides and howtos on XEN 3.0 can be found here:&lt;br /&gt;
http://www.xensource.com/products/xen/documentation.html. But we'll give here some common information on XEN 3.0 in purpose to make a story more clear. XEN system consists of 3 parts:&lt;br /&gt;
&lt;br /&gt;
1) Xen hypervisor - lowest level part of system that virtualizes drivers and architecture dependent part of the system.&lt;br /&gt;
&lt;br /&gt;
2) XenLinux kernel - guest OS that works over hypervisor in privileged domain Dom0 or unprivileged domain DomU. Privileged Dom0 domain is used for  creating, destroying and supervising of unprivileged domains (DomUs). XenLinux kernel that is running in Dom0 contains 2 sets of drivers: physical and virtual. DomU XenLinux kernel can contain the only set of virtual drivers.&lt;br /&gt;
&lt;br /&gt;
3) XM Tool - userland program that is used from Dom0 for creating, destroying and supervising DomUs.&lt;br /&gt;
&lt;br /&gt;
As OpenVZ is an OS level virtualization solution and do not affect drivers, it is possible to run OpenVZ within XEN DomU. Text listed below guides through XEN 3.0, XM tool and OpenVZ-XenLinux PAE kernel installation on x86. Guide assumes RHEL5 Linux is used as an OS on your hardware.&lt;br /&gt;
&lt;br /&gt;
Well. Login as root. Create 2 directories:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir xen&lt;br /&gt;
# mkdir openvz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Installing XEN itself, Dom0 and XEN tools.&lt;br /&gt;
&lt;br /&gt;
XEN 3.0 and XM tool can be installed in 2 ways: either from tarball containing prebuilt binaries or by building from sources.&lt;br /&gt;
&lt;br /&gt;
- Installing from tarball&lt;br /&gt;
&lt;br /&gt;
Download XEN 3.1 32 bit PAE SMP tarball from http://bits.xensource.com/ and unpack:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd xen&lt;br /&gt;
# wget  http://bits.xensource.com/oss-xen/release/3.1.0/bin.tgz/xen-3.1.0-install-x86_32p.tgz&lt;br /&gt;
# gunzip xen-3.1.0-install-x86_32p.tgz&lt;br /&gt;
# tar -xvf xen-3.1.0-install-x86_32p.tar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run the install.sh script within ./dist folder:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./dist/install.sh&lt;br /&gt;
&lt;br /&gt;
Installing Xen from './dist/install' to '/'...&lt;br /&gt;
 - installing for udev-based system&lt;br /&gt;
 - modifying permissions&lt;br /&gt;
All done.&lt;br /&gt;
Checking to see whether prerequisite tools are installed...&lt;br /&gt;
Xen CHECK-INSTALL  Thu May 24 14:30:20 MSD 2007&lt;br /&gt;
Checking check_brctl: OK&lt;br /&gt;
Checking check_crypto_lib: OK&lt;br /&gt;
Checking check_iproute: OK&lt;br /&gt;
Checking check_libvncserver: unused, OK&lt;br /&gt;
Checking check_python: OK&lt;br /&gt;
Checking check_python_xml: OK&lt;br /&gt;
Checking check_sdl: unused, OK&lt;br /&gt;
Checking check_udev: OK&lt;br /&gt;
Checking check_zlib_lib: OK&lt;br /&gt;
All done.&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
install.sh checks the presence of the required packages and installs hypervisor xen.gz and XenLinux vmlinuz-2.6.16.33-xen&lt;br /&gt;
to /boot and xm tool to /usr/sbin. Now update /etc/grub.conf by adding the xen entry in the following way:&lt;br /&gt;
&lt;br /&gt;
/etc/grub.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Xen Linux (2.6.16.33-xen)&lt;br /&gt;
        root (hd0,1)&lt;br /&gt;
        kernel /boot/xen.gz dom0_mem=1048576&lt;br /&gt;
        module /boot/vmlinuz-2.6.16.33-xen ro root=LABEL=/ console=ttyS0,115200 console=tty silencelevel=8 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you can reboot the machine. Choosing the Xen Linux (2.6.16.33-xen) from grub sequence will cause to booting xen hypervisor and Dom0 running Xen Linux (2.6.16.33-xen). In case of success you'll see the usual login prompt. If kernel panic takes place during boot - reboot the machine into your usual working Linux and check if the xen related /etc/grub.conf entry is correct. If /etc/grub.conf entry is correct and xen kernel is unable to boot,- the reason is prebuild vmlinuz-2.6.16.33-xen does not contain&lt;br /&gt;
some drivers for your hardware, that are needed to be loaded by using initrd. In this case follow instructions below - &amp;quot;Building from sources&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- Building from sources&lt;br /&gt;
&lt;br /&gt;
Download the package containing sources of Xen-3.1 and unpack it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# wget http://bits.xensource.com/oss-xen/release/3.1.0/src.tgz/xen-3.1.0-src.tgz&lt;br /&gt;
# gunzip xen-3.1.0-src.tgz&lt;br /&gt;
# tar -xvf xen-3.1.0-src.tar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change directory to ./xen-3.1.0-src:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd ./xen-3.1.0-src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and start building:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# make XEN_TARGET_X86_PAE=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Building process will do the following:&lt;br /&gt;
- build hypervizor xen.gz&lt;br /&gt;
- download linux kernel sources 2.6.16 from kernel.org, patch them with a set of xen patches &lt;br /&gt;
- from sources obtained build the vmlinuz-2.6.16.33-xen XenLinux kernel that will be able to boot both in Dom0 and DomU&lt;br /&gt;
- build and install xm tool&lt;br /&gt;
&lt;br /&gt;
After building is complete run ./install.sh script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./install.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As a result vmlinuz-2.6.16.33-xen, xen.gz will be placed to boot, xm tool will be placed to /usr/sbin. Now it is time to create initrd for vmlinuz-2.6.16.33-xen. Check that /lib/modules contain recently created directory 2.6.16.33-xen. If it is, type:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkinitrd -f -v /boot/initrd-2.6.16.33-xen.img 2.6.16.33-xen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After initrd-2.6.16.33-xen.img is succesfully created update corresponding strings in /etc/grub.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title Xen Linux (2.6.16.33-xen)&lt;br /&gt;
        root (hd0,1)&lt;br /&gt;
        kernel /boot/xen.gz dom0_mem=1048576&lt;br /&gt;
        module /boot/vmlinuz-2.6.16.33-xen ro root=LABEL=/ console=ttyS0,115200 console=tty silencelevel=8 &lt;br /&gt;
        module /boot/initrd-2.6.16.33-xen.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Xen 3.0 doesn't support TLS. To make xen work correct disable TLS on your machine bu renaming /lib/tls to /lib/tls.disabled:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mv /lib/tls /lib/tls.disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check that kernel command line options are correct (after ro ...) and reboot the machine. In grub loader menu select &amp;quot;Xen Linux (2.6.16.33-xen)&amp;quot;. In case of success - machine boots into Xen's Dom0 that is running vmlinuz-2.6.16.33-xen XenLinux. Now it is time to prepare OpenVZ XenLinux kernel for DomU.&lt;br /&gt;
&lt;br /&gt;
3. Installing OpenVZ XenLinux kernel.&lt;br /&gt;
&lt;br /&gt;
OpenVZ XenLinux kernel can be installed in 2 ways: either from rpm containing or by&lt;br /&gt;
building from sources.&lt;br /&gt;
&lt;br /&gt;
- install from rpm&lt;br /&gt;
&lt;br /&gt;
Change directory to openvz and download rpm package with OpenVZ XenLinux kernel for x86:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd&lt;br /&gt;
# cd openvz&lt;br /&gt;
# wget http://download.openvz.org/kernel/branches/rhel5-2.6.18/028stab034.1/ovzkernel-PAE-2.6.18-8.el5.xen.028stab034.i686.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install downloaded rpm:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -ihv ovzkernel-PAE-2.6.18-8.el5.xen.028stab033.i686.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If something goes wrong during installation the prebuilt kernel - you can build the OpenVZ XenLinux kernel from sources as described below.&lt;br /&gt;
&lt;br /&gt;
- install from sources&lt;br /&gt;
&lt;br /&gt;
Download rpm with OpenVZ kernel sources:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# wget http://download.openvz.org/kernel/branches/rhel5-2.6.18/028stab034.1/ovzkernel-2.6.18-8.el5.028stab034.1.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unpack downloaded rpm package:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm2cpio ovzkernel-2.6.18-8.el5.028stab034.1.src.rpm &amp;gt; ovzkernel-2.6.18-8.el5.028stab034.1.src.cpio&lt;br /&gt;
# cpio -i &amp;lt; ovzkernel-2.6.18-8.el5.028stab034.1.src.cpio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check that ./kernel-ovz.spec contains the following strings:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
# Whether to build the Xen kernels, disable if you want.&lt;br /&gt;
%define buildxen 1&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If &amp;quot;buildxen is set to 0&amp;quot; - update kernel-ovz.spec using text editor, set buildxen to 1.&lt;br /&gt;
&lt;br /&gt;
Prepare sources for building:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpmbuild -bp --define &amp;quot;_topdir $PWD&amp;quot; --define &amp;quot;_sourcedir $PWD&amp;quot; --define &amp;quot;_builddir $PWD&amp;quot; --target i686-linux kernel-ovz.spec&lt;br /&gt;
# cd ./ovzkernel-2.6.18/linux-2.6.18.i686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use xen config file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp configs/kernel-2.6.18-i686-PAE-xen.config.ovz ./.config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update Makefile: change the value of EXTRAVERSION from  &amp;quot;-prep&amp;quot; to something better, for example &amp;quot;-openvzxen&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EXTRAVERSION = -openvzxen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And build the OpenVZ XenLinux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# make oldconfig&lt;br /&gt;
# make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After build is complete, - install modules and the kernel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# make modules_install&lt;br /&gt;
# make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check that /lib/modules contains the directory 2.6.18-openvzxen.&lt;br /&gt;
And prepare initrd image for built OpenVZ XenLinux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkinitrd -f -v --omit-scsi-modules --preload=xenblk /boot/initrd-2.6.18-openvzxen.img 2.6.18-openvzxen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OpenVZ XenLinux kernel prepared. Now OpenVZ tools are to be installed. In case you faced problem while building the kernel turn to article http://wiki.openvz.org/Kernel_build .&lt;br /&gt;
&lt;br /&gt;
- install OpenVZ tools:&lt;br /&gt;
&lt;br /&gt;
Now download and install latest versions of OpenVZ tools vzctl, vzquota that are necessary for starting/stopping VEs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# wget http://download.openvz.org/utils/vzctl/3.0.16/vzctl-3.0.16-1.i386.rpm .&lt;br /&gt;
# wget http://download.openvz.org/utils/vzctl/3.0.16/vzctl-lib-3.0.16-1.i386.rpm .&lt;br /&gt;
# wget http://download.openvz.org/utils/vzquota/3.0.9/vzquota-3.0.9-1.i386.rpm .&lt;br /&gt;
# rpm -Uhv --nodeps vzctl-3.0.16-1.i386.rpm vzctl-lib-3.0.16-1.i386.rpm vzquota-3.0.9-1.i386.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
More information on installing OpenVZ tools can be found here: http://wiki.openvz.org/Quick_installation.&lt;br /&gt;
&lt;br /&gt;
- download OpenVZ guest template&lt;br /&gt;
&lt;br /&gt;
To make it possible to create VEs download one of the precreated OpenVZ templates and place it to /vz/template/cache:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# wget http://download.openvz.org/template/precreated/fedora-core-5-i386-minimal.tar.gz&lt;br /&gt;
# mv fedora-core-5-i386-minimal.tar.gz /vz/template/cache/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Preparing guest partition and configuring XEN.&lt;br /&gt;
&lt;br /&gt;
Xen users manual http://www.xensource.com/products/xen/documentation.html describes a set of different ways of creating disk for DomU. Disk can be created using loopback or LVM or physical partition. Consider we have a standalone physical partition /dev/sda7 that will be used for creating DomU disk. Assume /dev/sda7 is empty and it contains ext3 filesystem.&lt;br /&gt;
&lt;br /&gt;
Prepare disk with DomU guest Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount -t ext3 /dev/sda7 /mnt&lt;br /&gt;
# cp -a /bin /mnt&lt;br /&gt;
# cp -a /dev /mnt&lt;br /&gt;
# cp -a /etc /mnt&lt;br /&gt;
# cp -a /lib /mnt&lt;br /&gt;
# cp -a /net /mnt&lt;br /&gt;
# cp -a /opt /mnt&lt;br /&gt;
# cp -a /root /mnt&lt;br /&gt;
# cp -a /sbin /mnt&lt;br /&gt;
# cp -a /srv /mnt&lt;br /&gt;
# cp -a /tmp /mnt&lt;br /&gt;
# cp -a /usr /mnt&lt;br /&gt;
# cp -a /var /mnt&lt;br /&gt;
# cp -a /vz /mnt&lt;br /&gt;
# mkdir /mnt/sys&lt;br /&gt;
# mkdir /mnt/proc&lt;br /&gt;
# mkdir /mnt/mnt&lt;br /&gt;
# mkdir /mnt/home&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now create configuration file for starting DomU:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# touch /etc/xen/xmDomU&lt;br /&gt;
# vim /etc/xen/xmDomU&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and update xmDomU in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Kernel image file.&lt;br /&gt;
kernel = &amp;quot;/boot/vmlinuz-2.6.18-openvzxen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Optional ramdisk.&lt;br /&gt;
ramdisk = &amp;quot;/boot/initrd-2.6.18-openvzxen.img&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Initial memory allocation (in megabytes) for the new domain.&lt;br /&gt;
#&lt;br /&gt;
# WARNING: Creating a domain with insufficient memory may cause out of&lt;br /&gt;
#          memory errors. The domain needs enough memory to boot kernel&lt;br /&gt;
#          and modules. Allocating less than 32MBs is not recommended.&lt;br /&gt;
memory = 256&lt;br /&gt;
&lt;br /&gt;
# A name for your domain. All domains must have different names.&lt;br /&gt;
name = &amp;quot;Domain-U&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Define network interfaces.&lt;br /&gt;
vif = [ '' ]&lt;br /&gt;
&lt;br /&gt;
# Define the disk devices you want the domain to have access to, and&lt;br /&gt;
# what you want them accessible as.&lt;br /&gt;
# Each disk entry is of the form phy:UNAME,DEV,MODE&lt;br /&gt;
# where UNAME is the device, DEV is the device name the domain will see,&lt;br /&gt;
# and MODE is r for read-only, w for read-write.&lt;br /&gt;
disk = [ 'phy:sda7,xvda1,w' ]&lt;br /&gt;
&lt;br /&gt;
# Set root device.&lt;br /&gt;
root = &amp;quot;/dev/xvda1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Sets runlevel 4.&lt;br /&gt;
extra = &amp;quot;4 debug&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update /mnt/etc/fstab in the following way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/xvda1              /                       ext3    defaults        1 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Umount /dev/sda7:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Preparations completed. At this point we have everything that is necessary for cretaing DomU and starting OpenVZ XenLinux within DomU. Reboot into Xen: select Xen Linux (2.6.16.33-xen) item from grub menu. After reboot machine will be running vmlinuz-2.6.16.33-xen (see above) in Dom0 over hypervisor. Follow instructions below.&lt;br /&gt;
&lt;br /&gt;
5. Starting OpenVZ guest in DomU.&lt;br /&gt;
&lt;br /&gt;
- starting&lt;br /&gt;
&lt;br /&gt;
Start xend daemon to make xm tool work:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xend start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
List the set of running domains:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@dhcp0-131 ~]# xm list&lt;br /&gt;
Name                                      ID   Mem VCPUs      State   Time(s)&lt;br /&gt;
Domain-0                                   0  1024     2     r-----     53.2&lt;br /&gt;
[root@dhcp0-131 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now only privileged domain Dom0 is running. Create DomU:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@dhcp0-131 ~]# xm create -c /etc/xen/xmDomU&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This call culminates by showing us the DomU login prompt. Current console is now DomU console.&lt;br /&gt;
&lt;br /&gt;
Open another terminal on the machine (correspond to Dom0). And list the machines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xm list&lt;br /&gt;
Name                                      ID   Mem VCPUs      State   Time(s)&lt;br /&gt;
Domain-0                                   0  1024     2     r-----     75.0&lt;br /&gt;
Domain-U                                   1   255     1     r-----     19.5&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Switch back to DomU console and test OpenVZ.&lt;br /&gt;
&lt;br /&gt;
DomU console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@localhost ~]# uname&lt;br /&gt;
Linux localhost.localdomain 2.6.18-ovzxen-4-uxen #13 SMP Tue May 22 22:22:35&lt;br /&gt;
MSD 2007 i686 i686 i386 GNU/Linux&lt;br /&gt;
[root@localhost ~]# vzctl create 134 --ostemplate fedora-core-5-i386-minimal&lt;br /&gt;
Creating VE private area (fedora-core-5-i386-minimal)&lt;br /&gt;
Performing postcreate actions&lt;br /&gt;
VE private area was created&lt;br /&gt;
[root@localhost ~]# vzlist -a&lt;br /&gt;
      VEID      NPROC STATUS  IP_ADDR         HOSTNAME&lt;br /&gt;
       134          - stopped -               -&lt;br /&gt;
[root@localhost ~]# vzctl start 134&lt;br /&gt;
Starting VE ...&lt;br /&gt;
VE is mounted&lt;br /&gt;
Setting CPU units: 1000&lt;br /&gt;
VE start in progress...&lt;br /&gt;
[root@localhost ~]# vzlist -a&lt;br /&gt;
      VEID      NPROC STATUS  IP_ADDR         HOSTNAME&lt;br /&gt;
       134          - running -               -&lt;br /&gt;
[root@localhost ~]# vzctl enter 134&lt;br /&gt;
entered into VE 134&lt;br /&gt;
[root@localhost /]#&lt;br /&gt;
...&lt;br /&gt;
some actions within VE 134&lt;br /&gt;
...&lt;br /&gt;
[root@localhost /]# exit&lt;br /&gt;
exited from VE 156&lt;br /&gt;
[root@localhost ~]# vzctl stop 134&lt;br /&gt;
Stopping VE ...&lt;br /&gt;
VE was stopped&lt;br /&gt;
VE is unmounted&lt;br /&gt;
[root@localhost ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It works.&lt;br /&gt;
&lt;br /&gt;
- next steps&lt;br /&gt;
&lt;br /&gt;
As OpenVZ works in DomU it is the best time for configuring network both in DomU and VEs. This process is described in http://www.xensource.com/products/xen/documentation.html (DomU) and http://wiki.openvz.org/Category:Networking (VEs). After this all of us will feel the full power of virtualization!&lt;br /&gt;
&lt;br /&gt;
6. RHEL5 based OpenVZ in Dom0. Known problems.&lt;br /&gt;
&lt;br /&gt;
OpenVZ XenLinux kernel is able to work also in Dom0. It can be tested just by updating /etc/grub.conf on the hardware node. But in this case it will be impossible to start DomUs. It is a known bug and it is related not to OpenVZ, but to RHEL5 kernel.&lt;br /&gt;
Hope it is fixed in next RHEL5 update. &lt;br /&gt;
&lt;br /&gt;
7. Appreciates&lt;br /&gt;
&lt;br /&gt;
Thanks to Sergey Ya. Korshunoff seyko@ for starting the topic and contribution.&lt;/div&gt;</summary>
		<author><name>Emkravts</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Migration_from_Linux-VServer_to_OpenVZ&amp;diff=2576</id>
		<title>Migration from Linux-VServer to OpenVZ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Migration_from_Linux-VServer_to_OpenVZ&amp;diff=2576"/>
		<updated>2006-12-12T07:44:54Z</updated>

		<summary type="html">&lt;p&gt;Emkravts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Current document describes the migration from Linux-VServer based virtualization solution to OpenVZ.&lt;br /&gt;
&lt;br /&gt;
Description of challenge:&lt;br /&gt;
&lt;br /&gt;
The challenge is migration from Linux-Vserver to OpenVZ by booting the OpenVZ kernel and updating the existing configs of &lt;br /&gt;
utility level in purpose to make the existing guest OSes work over OpenVZ kernel.&lt;br /&gt;
&lt;br /&gt;
Details of migration process. Step by step:&lt;br /&gt;
&lt;br /&gt;
1. Initial conditions: the following example of Linux-VServer based solution was used for the experiment:&lt;br /&gt;
&lt;br /&gt;
- Kernel linux-2.6.17.13 was patched by the patch-2.6.17.13-vs2.0.2.1.diff and rebuild;&lt;br /&gt;
- Util-vserver-0.30.211 tools were used for creating Virtual Environments;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # vserver-info&lt;br /&gt;
  Versions:&lt;br /&gt;
  Kernel: 2.6.17.13-vs2.0.2.1&lt;br /&gt;
  VS-API: 0x00020002&lt;br /&gt;
  util-vserver: 0.30.211; Dec  5 2006, 17:10:21&lt;br /&gt;
&lt;br /&gt;
  Features:&lt;br /&gt;
  CC: gcc, gcc (GCC) 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)&lt;br /&gt;
  CXX: g++, g++ (GCC) 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)&lt;br /&gt;
  CPPFLAGS: ''&lt;br /&gt;
  CFLAGS: '-g -O2 -std=c99 -Wall -pedantic -W -funit-at-a-time'&lt;br /&gt;
  CXXFLAGS: '-g -O2 -ansi -Wall -pedantic -W -fmessage-length=0 -funit-at-a-time'&lt;br /&gt;
  build/host: i686-pc-linux-gnu/i686-pc-linux-gnu&lt;br /&gt;
  Use dietlibc: yes&lt;br /&gt;
  Build C++ programs: yes&lt;br /&gt;
  Build C99 programs: yes&lt;br /&gt;
  Available APIs: v13,net&lt;br /&gt;
  ext2fs Source: kernel&lt;br /&gt;
  syscall(2) invocation: alternative&lt;br /&gt;
  vserver(2) syscall#: 273/glibc&lt;br /&gt;
&lt;br /&gt;
  Paths:&lt;br /&gt;
  prefix: /usr/local&lt;br /&gt;
  sysconf-Directory: ${prefix}/etc&lt;br /&gt;
  cfg-Directory: ${prefix}/etc/vservers&lt;br /&gt;
  initrd-Directory: $(sysconfdir)/init.d&lt;br /&gt;
  pkgstate-Directory: ${prefix}/var/run/vservers&lt;br /&gt;
  vserver-Rootdir: /vservers&lt;br /&gt;
  #&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VServer v345 was built using vserver vX build utility and populated by using the tarballed template of Fedora Core 4.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # vserver v345 start&lt;br /&gt;
  Starting system logger:                                    [  OK  ]&lt;br /&gt;
  Initializing random number generator:                      [  OK  ]&lt;br /&gt;
  Starting crond: l:                                         [  OK  ]&lt;br /&gt;
  Starting atd:                                              [  OK  ]&lt;br /&gt;
  # vserver v345 enter&lt;br /&gt;
  [/]# ls -l&lt;br /&gt;
  total 44&lt;br /&gt;
  drwxr-xr-x    2 root     root         4096 Oct 26  2004 bin&lt;br /&gt;
  drwxr-xr-x    3 root     root         4096 Dec  8 17:16 dev&lt;br /&gt;
  drwxr-xr-x   27 root     root         4096 Dec  8 15:21 etc&lt;br /&gt;
  -rw-r--r--    1 root     root            0 Dec  8 15:33 halt&lt;br /&gt;
  drwxr-xr-x    2 root     root         4096 Jan 24  2003 home&lt;br /&gt;
  drwxr-xr-x    7 root     root         4096 Oct 26  2004 lib&lt;br /&gt;
  drwxr-xr-x    2 root     root         4096 Jan 24  2003 mnt&lt;br /&gt;
  drwxr-xr-x    3 root     root         4096 Oct 26  2004 opt&lt;br /&gt;
  -rw-r--r--    1 root     root            0 Dec  7 20:17 poweroff&lt;br /&gt;
  dr-xr-xr-x   80 root     root            0 Dec  8 11:38 proc&lt;br /&gt;
  drwxr-x---    2 root     root         4096 Dec  7 20:17 root&lt;br /&gt;
  drwxr-xr-x    2 root     root         4096 Oct 26  2004 sbin&lt;br /&gt;
  drwxrwxrwt    2 root     root           40 Dec  8 17:16 tmp&lt;br /&gt;
  drwxr-xr-x   15 root     root         4096 Jul 27  2004 usr&lt;br /&gt;
  drwxr-xr-x   17 root     root         4096 Oct 26  2004 var&lt;br /&gt;
  [/]# sh&lt;br /&gt;
  sh-2.05b#&lt;br /&gt;
  .........&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a result we obtain running virtual environment v345:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # vserver-stat&lt;br /&gt;
&lt;br /&gt;
  CTX   PROC    VSZ    RSS  userTIME   sysTIME    UPTIME NAME&lt;br /&gt;
  0       51  90.9M  26.3M   0m58s75   2m42s57  33m45s93 root server&lt;br /&gt;
  49153    4  10.2M   2.8M   0m00s00   0m00s11  21m45s42 v345&lt;br /&gt;
&lt;br /&gt;
  # &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Starting migration to OpenVZ: downloading and installing the stable OpenVZ kernel.&lt;br /&gt;
&lt;br /&gt;
First of all we should download and install the latest stable version of OpenVZ kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  #  wget http://openvz.org/download/kernel/stable/ovzkernel-2.6.9-023stab032.1.i686.rpm&lt;br /&gt;
  #  rpm -ihv ovzkernel-2.6.9-023stab032.1.i686.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use grub bootloader, then before installing the OpenVZ kernel file /boot/grub/grub.conf looked like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # grub.conf generated by anaconda&lt;br /&gt;
  #&lt;br /&gt;
  # Note that you do not have to rerun grub after making changes to this file&lt;br /&gt;
  # NOTICE:  You have a /boot partition.  This means that&lt;br /&gt;
  #          all kernel and initrd paths are relative to /boot/, eg.&lt;br /&gt;
  #          root (hd0,0)&lt;br /&gt;
  #          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00&lt;br /&gt;
  #          initrd /initrd-version.img&lt;br /&gt;
  #boot=/dev/sda&lt;br /&gt;
  default=0&lt;br /&gt;
  timeout=5&lt;br /&gt;
  splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
  hiddenmenu&lt;br /&gt;
  title Red Hat Enterprise Linux AS (2.6.17.13-vs2.0.2.1)&lt;br /&gt;
          root (hd0,0)&lt;br /&gt;
          kernel /vmlinuz-2.6.17.13-vs2.0.2.1 ro root=/dev/VolGroup00/LogVol00 &lt;br /&gt;
          initrd /initrd-2.6.17.13-vs2.0.2.1.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After installing it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # grub.conf generated by anaconda&lt;br /&gt;
  #&lt;br /&gt;
  # Note that you do not have to rerun grub after making changes to this file&lt;br /&gt;
  # NOTICE:  You have a /boot partition.  This means that&lt;br /&gt;
  #          all kernel and initrd paths are relative to /boot/, eg.&lt;br /&gt;
  #          root (hd0,0)&lt;br /&gt;
  #          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00&lt;br /&gt;
  #          initrd /initrd-version.img&lt;br /&gt;
  #boot=/dev/sda&lt;br /&gt;
  default=0&lt;br /&gt;
  timeout=5&lt;br /&gt;
  splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;
  hiddenmenu&lt;br /&gt;
  title Red Hat Enterprise Linux AS (2.6.9-023stab032.1)&lt;br /&gt;
          root (hd0,0)&lt;br /&gt;
          kernel /vmlinuz-2.6.9-023stab032.1 ro root=/dev/VolGroup00/LogVol00&lt;br /&gt;
          initrd /initrd-2.6.9-023stab032.1.img&lt;br /&gt;
  title Red Hat Enterprise Linux AS (2.6.17.13-vs2.0.2.1)&lt;br /&gt;
          root (hd0,0)&lt;br /&gt;
          kernel /vmlinuz-2.6.17.13-vs2.0.2.1 ro root=/dev/VolGroup00/LogVol00&lt;br /&gt;
          initrd /initrd-2.6.17.13-vs2.0.2.1.img&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the default parameter should be set to 0 in purpose to make the OpenVZ kernel work by default after rebooting the machine.&lt;br /&gt;
&lt;br /&gt;
Some more manual configuring needed on this step:&lt;br /&gt;
Update the /etc/sysctl.conf file according to the following listing ( Comment all other settings that are not presented &lt;br /&gt;
in listing below ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # On Hardware Node we generally need&lt;br /&gt;
  # packet forwarding enabled and proxy arp disabled&lt;br /&gt;
  net.ipv4.ip_forward = 1&lt;br /&gt;
  net.ipv4.conf.default.proxy_arp = 0&lt;br /&gt;
  # Enables source route verification&lt;br /&gt;
  net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
  # Enables the magic-sysrq key&lt;br /&gt;
  kernel.sysrq = 1&lt;br /&gt;
  # TCP Explict Congestion Notification&lt;br /&gt;
  #net.ipv4.tcp_ecn = 0&lt;br /&gt;
  # we do not want all our interfaces to send redirects&lt;br /&gt;
  net.ipv4.conf.default.send_redirects = 1&lt;br /&gt;
  net.ipv4.conf.all.send_redirects = 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the SELinux should be disabled, put the following line to /etc/sysconfig/selinux:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  SELINUX=disabled&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now reboot the machine. After rebooting and loggin in you will see the following reply on vserver-stat call:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # vserver-stat&lt;br /&gt;
  can not change context: migrate kernel feature missing and 'compat' API disabled: Function not implemented&lt;br /&gt;
  #&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is a natural thing that now virtual environments v345 is unavailable. The following steps will be devoted to making them&lt;br /&gt;
work over OpenVZ kernel.&lt;br /&gt;
&lt;br /&gt;
3. Downloading and istalling vzctl package&lt;br /&gt;
&lt;br /&gt;
OpenVZ solution reqires installing a set of tools: vzctl and vzquota packages. Let us download and install this tools:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # wget http://openvz.org/download/utils/vzctl-3.0.13-1.i386.rpm&lt;br /&gt;
  # wget http://openvz.org/download/utils/vzquota-3.0.9-1.i386.rpm&lt;br /&gt;
  # rpm -Uhv vzctl-3.0.13-1.i386.rpm vzquota-3.0.9-1.i386.rpm&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If rpm complains about unresolved dependencies, you'll have to satisfy them first, then repeat the installation.&lt;br /&gt;
Then launch the OpenVZ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # /sbin/service vz start&lt;br /&gt;
  Starting OpenVZ:                                           [  OK  ]&lt;br /&gt;
  Bringing up interface venet0:                              [  OK  ]&lt;br /&gt;
  Configuring interface venet0:                              [  OK  ]&lt;br /&gt;
  #&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently vzlist util is unable to find any VE:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # vzlist&lt;br /&gt;
  VE not found&lt;br /&gt;
  #&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Updating different configurations in purpose to make existing templates work&lt;br /&gt;
&lt;br /&gt;
Move the existing templates of guest OSes to the right place:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # cd /vz&lt;br /&gt;
  # mkdir private&lt;br /&gt;
  # mkdir 345&lt;br /&gt;
  # mv /vservers/v345 /vz/private/345&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now it is time for creating configuration files for OpenVZ VPS. Use the basic sample&lt;br /&gt;
configuration presented in /etc/sysconfig/vz-scripts/ve-vps.basic.conf-sample file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # cd /etc/sysconfig/vz-scripts&lt;br /&gt;
  # cp ve-vps.basic.conf-sample 345.conf&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the ON_BOOT string in 345.conf file by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  .....&lt;br /&gt;
  ONBOOT=&amp;quot;yes&amp;quot;&lt;br /&gt;
  .....&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
to make it boot on node restart, and add a couple of strings related to the particular 345 VE:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  .....&lt;br /&gt;
  VE_ROOT=&amp;quot;/vz/root/345&amp;quot;&lt;br /&gt;
  VE_PRIVATE=&amp;quot;/vz/private/345&amp;quot;&lt;br /&gt;
  ORIGIN_SAMPLE=&amp;quot;vps.basic&amp;quot;&lt;br /&gt;
  HOSTNAME=&amp;quot;test345.my.org&amp;quot;&lt;br /&gt;
  IP_ADDRESS=&amp;quot;192.168.0.145&amp;quot;&lt;br /&gt;
  .....&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And reboot the machine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # reboot&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Testing how the guest OSes succesfully work over OpenVZ. reference to Users Guide of OpenVZ (vzctl).&lt;br /&gt;
&lt;br /&gt;
After rebooting you will be able to see running VE 345 that have been migrated from vserver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # vzlist -a&lt;br /&gt;
  VEID      NPROC  STATUS  IP_ADDR         HOSTNAME&lt;br /&gt;
  345          5   running 192.168.0.145   test345.my.org&lt;br /&gt;
  #&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And run commands on it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # vzctl exec 345 ls -l&lt;br /&gt;
  total 48&lt;br /&gt;
  drwxr-xr-x    2 root     root         4096 Oct 26  2004 bin&lt;br /&gt;
  drwxr-xr-x    3 root     root         4096 Dec 11 12:42 dev&lt;br /&gt;
  drwxr-xr-x   27 root     root         4096 Dec 11 12:44 etc&lt;br /&gt;
  -rw-r--r--    1 root     root            0 Dec 11 12:13 fastboot&lt;br /&gt;
  -rw-r--r--    1 root     root            0 Dec  8 15:33 halt&lt;br /&gt;
  drwxr-xr-x    2 root     root         4096 Jan 24  2003 home&lt;br /&gt;
  drwxr-xr-x    7 root     root         4096 Oct 26  2004 lib&lt;br /&gt;
  drwxr-xr-x    2 root     root         4096 Jan 24  2003 mnt&lt;br /&gt;
  drwxr-xr-x    3 root     root         4096 Oct 26  2004 opt&lt;br /&gt;
  -rw-r--r--    1 root     root            0 Dec  7 20:17 poweroff&lt;br /&gt;
  dr-xr-xr-x   70 root     root            0 Dec 11 12:42 proc&lt;br /&gt;
  drwxr-x---    2 root     root         4096 Dec  7 20:17 root&lt;br /&gt;
  drwxr-xr-x    2 root     root         4096 Dec 11 12:13 sbin&lt;br /&gt;
  drwxrwxrwt    2 root     root         4096 Dec  8 12:40 tmp&lt;br /&gt;
  drwxr-xr-x   15 root     root         4096 Jul 27  2004 usr&lt;br /&gt;
  drwxr-xr-x   17 root     root         4096 Oct 26  2004 var&lt;br /&gt;
  #&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Potential issues:&lt;br /&gt;
This work has in progress status. Some issues may take place with tuning the network for VEs. To be continued.&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]]&lt;/div&gt;</summary>
		<author><name>Emkravts</name></author>
		
	</entry>
</feed>