================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
screen x86_64 4.0.3-16.el6 base 494 k
Total download size: 494 k
Installed size: 795 k
Is this ok [y/N]: y
Downloading Packages:
screen-4.0.3-16.el6.x86_64.rpm | 494 kB 00:01
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
Package: centos-release-6-2.el6.centos.7.x86_64 (@anaconda-CentOS-201112091719.x86_64/6.2)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : screen-4.0.3-16.el6.x86_64 1/1
Installed:
screen.x86_64 0:4.0.3-16.el6
Complete!
安装 vim
yum install vim
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.ta139.com
* extras: mirrors.ta139.com
* updates: mirrors.ta139.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package vim-enhanced.x86_64 2:7.2.411-1.6.el6 will be installed
--> Processing Dependency: vim-common = 2:7.2.411-1.6.el6 for package: 2:vim-enhanced-7.2.411-1.6.el6.x86_64
--> Processing Dependency: perl(:MODULE_COMPAT_5.10.1) for package: 2:vim-enhanced-7.2.411-1.6.el6.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 2:vim-enhanced-7.2.411-1.6.el6.x86_64
--> Processing Dependency: libgpm.so.2()(64bit) for package: 2:vim-enhanced-7.2.411-1.6.el6.x86_64
--> Running transaction check
---> Package gpm-libs.x86_64 0:1.20.6-12.el6 will be installed
---> Package perl.x86_64 4:5.10.1-119.el6_1.1 will be installed
--> Processing Dependency: perl(Pod::Simple) for package: 4:perl-5.10.1-119.el6_1.1.x86_64
--> Processing Dependency: perl(version) for package: 4:perl-5.10.1-119.el6_1.1.x86_64
--> Processing Dependency: perl(Module::Pluggable) for package: 4:perl-5.10.1-119.el6_1.1.x86_64
---> Package perl-libs.x86_64 4:5.10.1-119.el6_1.1 will be installed
---> Package vim-common.x86_64 2:7.2.411-1.6.el6 will be installed
--> Running transaction check
---> Package perl-Module-Pluggable.x86_64 1:3.90-119.el6_1.1 will be installed
---> Package perl-Pod-Simple.x86_64 1:3.13-119.el6_1.1 will be installed
--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.13-119.el6_1.1.x86_64
---> Package perl-version.x86_64 3:0.77-119.el6_1.1 will be installed
--> Running transaction check
---> Package perl-Pod-Escapes.x86_64 1:1.04-119.el6_1.1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository
Size
================================================================================
Installing:
vim-enhanced x86_64 2:7.2.411-1.6.el6 base 896 k
Installing for dependencies:
gpm-libs x86_64 1.20.6-12.el6 base 28 k
perl x86_64 4:5.10.1-119.el6_1.1 base 10 M
perl-Module-Pluggable x86_64 1:3.90-119.el6_1.1 base 37 k
perl-Pod-Escapes x86_64 1:1.04-119.el6_1.1 base 30 k
perl-Pod-Simple x86_64 1:3.13-119.el6_1.1 base 209 k
perl-libs x86_64 4:5.10.1-119.el6_1.1 base 575 k
perl-version x86_64 3:0.77-119.el6_1.1 base 49 k
vim-common x86_64 2:7.2.411-1.6.el6 base 6.0 M
(Note: This assumes you have already satisfied the dependencies for installing Xen)
Try installing the rpms:
# cd /root/rpmbuild/RPMS/x86_64/
# rpm -Uvh xen*4.0.1-6*.rpm
error: Failed dependencies:
/usr/bin/qemu-nbd is needed by xen-runtime-4.0.1-6.el6.x86_64
出现什么问题了? It seems RHEL6 does not have "qemu-common" rpm available, which includes "qemu-nbd" binary. So we need to grab qemu src.rpm from Fedora and rebuild it for RHEL6 to get the required "qemu-common" rpm.
Now you're done installing Xen hypervisor, tools and libraries.
Installing upstream Xen dom0 capable kernel
现在要装 upstream *Xen* kernel , 这基于 kernel.org Linux 2.6.32.x kernel. 这个 kernel 和 Redhat RHEL6 kernel是不同的. Many drivers are newer versions in Redhat's kernel, and Redhat's kernel might have more features than the kernel.org kernel. Due to the
driver version differences you might experience problems on some hardware, for example on servers using LSI/DELL RAID adapters. 可能要手动解决这些问题.
Clone the kernel git repository from kernel.org and check out the "xen/stable-2.6.32.x" long-term maintained branch.
git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x
fatal: git checkout: updating paths is incompatible with switching branches.
Did you intend to checkout 'origin/xen/stable-2.6.32.x' which can not be resolved as commit?
git remote show origin
[iyunv@intel5000v linux-2.6-xen]# git remote show origin
* remote origin
Fetch URL: git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git
Push URL: git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git
HEAD branch: master
Remote branches:
hid-battery tracked
hid-battery-scope tracked
master tracked
power-supply-scope tracked
upstream/jump-label-noearly tracked
upstream/linux-next tracked
upstream/microcode tracked
upstream/pvticketlock-slowflag tracked
upstream/ticketlock-cleanup tracked
upstream/xen tracked
upstream/xen-settime tracked
xen/mmu-perf-tweak tracked
xen/next-2.6.32 tracked
xen/next-3.1 tracked
xen/next-3.2 tracked
xen/no-pv tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
私自更改了路径。原来的路径xen/stable-2.6.32.x不存在了。
git fetch
[iyunv@intel5000v linux-2.6-xen]# git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x
fatal: git checkout: updating paths is incompatible with switching branches.
Did you intend to checkout 'origin/xen/stable-2.6.32.x' which can not be resolved as commit?
[iyunv@intel5000v linux-2.6-xen]# git checkout -b xen/stable-2.6.32.x origin/xen/next-2.6.32
Checking out files: 100% (30367/30367), done.
Branch xen/stable-2.6.32.x set up to track remote branch xen/next-2.6.32 from origin.
Switched to a new branch 'xen/stable-2.6.32.x'
[iyunv@intel5000v linux-2.6-xen]#
Configure the kernel
You can run make menuconfig, and go through the config file to manually activate the relevant Xen options. (Hint: Press the '/' key to bring up a search option, and search for 'xen'.
Alternatively, download a reference config-file for the 2.6.32.x kernel. Also run "oldconfig" to adapt the configuration to current kernel version (if it's different):
# wget -O .config http://pasik.reaktio.net/xen/pv_ops-dom0-debug/config-2.6.32.25-pvops-dom0-xen-stable-x86_64
# make oldconfig
# make clean
# make -j4 bzImage && make -j4 modules && make modules_install
....
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_intel5000v-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/ddf1_4c5349202020202080862682000000004711471100001450
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title CentOS (2.6.32-220.13.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.13.1.el6.x86_64 ro root=/dev/mapper/vg_intel5000v-lv_root rd_DM_UUID=ddf1_4c5349202020202080862682000000004711471100001450 rd_NO_LUKS rd_LVM_LV=vg_intel5000v/lv_root rd_NO_MD quiet rhgb crashkernel=auto LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_intel5000v/lv_swap
initrd /initramfs-2.6.32-220.13.1.el6.x86_64.img
title CentOS (2.6.32-220.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/vg_intel5000v-lv_root rd_DM_UUID=ddf1_4c5349202020202080862682000000004711471100001450 rd_NO_LUKS rd_LVM_LV=vg_intel5000v/lv_root rd_NO_MD quiet rhgb crashkernel=auto LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_intel5000v/lv_swap
initrd /initramfs-2.6.32-220.el6.x86_64.img
title Xen 4.0 with Linux 2.6.32.57 dom0
root (hd0,0)
kernel /xen.gz dom0_mem=1024M loglvl=all guest_loglvl=all
module /vmlinuz-2.6.32.57 ro root=/dev/mapper/vg_intel5000v-lv_root rd_DM_UUID=ddf1_4c5349202020202080862682000000004711471100001450 rd_LVM_LV=vg_intel5000v/lv_root nomodeset
module /initramfs-2.6.32.57.img
禁用 KSM services, 当前这个服务不能和 Xen 工作:
[iyunv@el6 ~]# chkconfig ksm off
[iyunv@el6 ~]# chkconfig ksmtuned off
重启,重启后验证 XEN
#reboot
重启后,登录系统执行 :
[iyunv@intel5000v lidong]# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 4 r----- 65.0
从上面输出,我们可以看出,当前运行的 Xen 虚拟机版本是 version 4.0.1 (xen_major, xen_minor, xen_extra) with Linux 2.6.32.57 dom0 kernel.
Updating the dom0 kernel
[iyunv@el6 ~]# mkdir /root/kernel/linux-2.6-xen
[iyunv@el6 linux-2.6-xen]# make clean
[iyunv@el6 linux-2.6-xen]# git pull
[iyunv@el6 linux-2.6-xen]# git log | less
执行 git log |less 结果:
commit a938a246d34912423c560f475ccf1ce0c71d9d00
Merge: 8326829 1897bf2
Author: Jeremy Fitzhardinge <jeremy@goop.org>
Date: Mon Mar 19 10:52:00 2012 -0700
Merge commit 'v2.6.32.57' into xen/next-2.6.32
* commit 'v2.6.32.57': (22 commits)
Linux 2.6.32.57
net: sock_queue_err_skb() dont mess with sk_forward_alloc
net: fix sk_forward_alloc corruptions
mmc: cb710 core: Add missing spin_lock_init for irq_lock of struct cb710_chip
USB: usbserial: add new PID number (0xa951) to the ftdi driver
usb: Skip PCI USB quirk handling for Netlogic XLP
usb: gadget: zero: fix bug in loopback autoresume handling
Staging: android: binder: Fix crashes when sharing a binder file between processes
Staging: android: binder: Don't call dump_stack in binder_vma_open
Staging: asus_oled: fix image processing
atmel_lcdfb: fix usage of CONTRAST_CTR in suspend/resume
eCryptfs: Infinite loop due to overflow in ecryptfs_write()
drm/i915: Fix TV Out refresh rate.
udf: Mark LVID buffer as uptodate before marking it dirty
rpc client can not deal with ENOSOCK, so translate it into ENOCONN
NFSv4: Fix open recovery
NFSv4: Handle NFS4ERR_GRACE when recovering an expired lease.
NFSv4: Ensure the state manager handles NFS4ERR_NO_GRACE correctly
NFSv4: The state manager shouldn't exit on errors that were handled
NFSv4: Fix up the callers of nfs4_state_end_reclaim_reboot
...
[iyunv@intel5000v linux-2.6-xen]# virt-manager &
[1] 3050
[iyunv@intel5000v linux-2.6-xen]# Traceback (most recent call last):
File "/usr/share/virt-manager/virt-manager.py", line 383, in <module>
main()
File "/usr/share/virt-manager/virt-manager.py", line 286, in main
raise gtk_error
RuntimeError: could not open display
[iyunv@el6 SPECS]# rpmbuild -bb libvirt.spec
error: Failed build dependencies:
libnl-devel >= 1.1 is needed by libvirt-0.8.1-27.el6.x86_64
xhtml1-dtds is needed by libvirt-0.8.1-27.el6.x86_64
libudev-devel >= 145 is needed by libvirt-0.8.1-27.el6.x86_64
libpciaccess-devel >= 0.10.9 is needed by libvirt-0.8.1-27.el6.x86_64
yajl-devel is needed by libvirt-0.8.1-27.el6.x86_64
libpcap-devel is needed by libvirt-0.8.1-27.el6.x86_64
avahi-devel is needed by libvirt-0.8.1-27.el6.x86_64
parted-devel is needed by libvirt-0.8.1-27.el6.x86_64
device-mapper-devel is needed by libvirt-0.8.1-27.el6.x86_64
numactl-devel is needed by libvirt-0.8.1-27.el6.x86_64
netcf-devel >= 0.1.4 is needed by libvirt-0.8.1-27.el6.x86_64