前期准备
1、首先确定机器有VT
终端输入:grep vmx /proc/cpuinfo(intel芯片)
grep svm /proc/cpuinfo(AMD芯片)
不知道自己芯片的就输入:egrep '(vmx|svm)' /proc/cpuinfo
如果flags里面有vmx或者svm就是支持VT,如果没有任何输出则是不支持
2、确保BIOS里面开启了VT
intel(R) Virtualization Tech [Enable]
如果有必要,还需要在BIOS里面开启VT-d
请注意安装的先后顺序!
/*****************************************************************安装xen********************************************************************/
第一步:安装需要的软件包
安装编译 Xen 和 Linux xen kernel 所需要的软件包:
sudo apt-get install gcc g++ make patch libssl-dev bzip2 gettext \
zlib1g-dev python libncurses5-dev libjpeg62-dev libx11-dev \
libgcrypt11-dev pkg-config bridge-utils bcc bin86 libpci-dev \
libsdl-dev python-dev texinfo libc6-dev uuid-dev bison flex fakeroot \
build-essential crash kexec-tools makedumpfile libncurses5 \
libncurses5-dev iasl gawk
第二步:安装xen vmm
32位和64位系统的区别也很重要。64位按下面步骤很简单,32位就不同,因为xen需要开启pae,默认是没有开启的,所以32位ubuntu首先得执行下面这个命令:
sudo apt-get install linux-image-server
sudo apt-get install xen-hypervisor-4.1-amd64 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils
这里xen-hypervisor-4.1要分32位、64位,64位系统用xen-hypervisor-4.1-amd64,32位用xen-hypervisor-4.1-i386.
第三步:重启机器,选择有xen的内核启动,进入系统之后,再检查一下 Xen 是否已经成功安装:
$ sudo xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1879 2 r----- 6.6
出现上面的信息,则代表安装成功。
接着修改grub,使xen自启动。此步骤可以省略
第五步:修改配置文件
sudo gedit /etc/xen/xend-config.sxp
将/etc/xen/xend-config.sxp文件中的“#(xend-unix-server no)”跟“#(xend-relocation-server no)”注释去掉 即把“#”去掉,并把“no”改成“yes”,保存即可。 relocation是迁移必须要开启的服务,其他的服务在没有必要的时候不要随便打开
然后重启xend服务(手动启动/停止/重启Xen服务命令:/etc/init.d/xend start / stop / restart)
sudo gedit ~/.bashrc ,在打开的.bashrc文件中添加下面这句话
export VIRSH_DEFAULT_CONNECT_URI="xen:///"
(/*****************************************************************安装 kvm******************************************************************/)
注意!装了xen就不要执行这一步了,这两种虚拟机管理器装一种就行了!
sudo apt-get install kvm
由于配合kvm一起工作的qemu已经替你实现了模拟硬件虚拟化,所以即使你的硬件不支持虚拟化也一样可以用kvm跟libvirt搭配使用的
这个kvm安装比xen要方便很多,但是也是有一定缺陷的,看你要做什么的吧。其他配置过程是一样的
/****************************************安装vir-manager**************************************************************/
sudo apt-get install virtinst virt-viewer virt-manager
/***********************************************************安装ssh服务******************************************************/
sudo apt-get install openssh-server
/**********************************************************安装libvirt***********************************************************/
1.安装依赖的软件包
apt-get install libvirt-bin libvirt-dev libxml2 libxml2-dev gnutls-doc gnutls-bin libneon27-gnutls libcurl4-gnutls-dev libnl-dev python-dev
从网上下载YAJL(yajl_1.0.8.orig.tar.gz)
解压后进入该目录下,先安装C++/C编译器,
sudo apt-get install g++
然后继续执行一下命令:
sudo apt-get install build-essential
然后执行:
sudo apt-get install cmake ruby
最后执行:
(1)./configure
(2)make
(3)make install
从网上下载device-mapper.1.02.28.tgz,然后解压缩tar -zxvf device-mapper.1.02.28.tgz,
进入解压后的文件夹中:cd device-mapper.1.02.28。安装device-mapper。
(1) ./configure
(2) sudo make
(3) sudo make install
以上安装各个依赖包的作用:
libxml2 libxml2-dev解决:出现checking libxml2 xml2-config >= 2.6.0..
gnutls-doc gnutls-bin libneon27-gnutls libcurl4-gnutls-dev解决:configrue: error: you must install the gnutls library in order to compile and run libvirt
YAJL解决:configure: error: You must install the YAJL development package in order to compile libvirt
device-mapper解决:缺少device-mapper-devel
python-dev解决:You must install python-devel to build Python bindings
libnl-dev解决:configure: error: libnl-devel >= 1.1 is required for macvtap support
2.安装libvirt
cd进入libvirt文件夹
(1)./configure
(2)make
(3)make install
如果没有什么错误提示即安装成功
安装libvirt后出现的问题及解决办法
(1)解决
virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.11' not found (required by virsh)
virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.9' not found (required by virsh)
virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.10' not found (required by virsh)
virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.13' not found (required by virsh)
virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_PRIVATE_0.9.13' not found (required by virsh)
第一种:
定义shell变量 LD_LIBRARY_PATH
$ LD_LIBRARY_PATH=/usr/local/lib
$ export LD_LIBRARY_PATH
$ ./example
第二种:
修改系统动态链接库配置文件
(the system dynamic linker configuration)
进入目录/etc/ld.so.conf.d
添加一个文件libvirt.conf,内容是:
# libvirt default configuration
/usr/local/lib
更新动态链接库缓存
sudo ldconfig
(2)解决failed to connect socket to '/usr/local/var/run/libvirt/libvirt-sock':no such file or directory
添加libvirt用户组
sudo groupadd libvirt
添加当前用户到libvirt组里
sudo gpasswd -a root libvirt
记得要重启,才能有用
/*****************************************************************安装xen********************************************************************/
第一步:安装需要的软件包
安装编译 Xen 和 Linux xen kernel 所需要的软件包:
sudo apt-get install gcc g++ make patch libssl-dev bzip2 gettext \
zlib1g-dev python libncurses5-dev libjpeg62-dev libx11-dev \
libgcrypt11-dev pkg-config bridge-utils bcc bin86 libpci-dev \
libsdl-dev python-dev texinfo libc6-dev uuid-dev bison flex fakeroot \
build-essential crash kexec-tools makedumpfile libncurses5 \
libncurses5-dev iasl gawk
第二步:安装xen vmm
32位和64位系统的区别也很重要。64位按下面步骤很简单,32位就不同,因为xen需要开启pae,默认是没有开启的,所以32位ubuntu首先得执行下面这个命令:
sudo apt-get install linux-image-server
sudo apt-get install xen-hypervisor-4.1-amd64 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils
这里xen-hypervisor-4.1要分32位、64位,64位系统用xen-hypervisor-4.1-amd64,32位用xen-hypervisor-4.1-i386.
第三步:重启机器,选择有xen的内核启动,进入系统之后,再检查一下 Xen 是否已经成功安装:
$ sudo xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1879 2 r----- 6.6
出现上面的信息,则代表安装成功。
接着修改grub,使xen自启动。此步骤可以省略
$ sudo apt-get purge grub-pc $ sudo rm /boot/grub/* $ sudo apt-get install grub $ sudo grub-install --recheck /dev/sda $ sudo update-grub $ sudo vi /boot/grub/menu.lst
第五步:修改配置文件
sudo gedit /etc/xen/xend-config.sxp
将/etc/xen/xend-config.sxp文件中的“#(xend-unix-server no)”跟“#(xend-relocation-server no)”注释去掉 即把“#”去掉,并把“no”改成“yes”,保存即可。 relocation是迁移必须要开启的服务,其他的服务在没有必要的时候不要随便打开
然后重启xend服务(手动启动/停止/重启Xen服务命令:/etc/init.d/xend start / stop / restart)
sudo gedit ~/.bashrc ,在打开的.bashrc文件中添加下面这句话
export VIRSH_DEFAULT_CONNECT_URI="xen:///"
(/*****************************************************************安装 kvm******************************************************************/)
注意!装了xen就不要执行这一步了,这两种虚拟机管理器装一种就行了!
sudo apt-get install kvm
由于配合kvm一起工作的qemu已经替你实现了模拟硬件虚拟化,所以即使你的硬件不支持虚拟化也一样可以用kvm跟libvirt搭配使用的
这个kvm安装比xen要方便很多,但是也是有一定缺陷的,看你要做什么的吧。其他配置过程是一样的
/****************************************安装vir-manager**************************************************************/
sudo apt-get install virtinst virt-viewer virt-manager
/***********************************************************安装ssh服务******************************************************/
sudo apt-get install openssh-server
/**********************************************************安装libvirt***********************************************************/
1.安装依赖的软件包
apt-get install libvirt-bin libvirt-dev libxml2 libxml2-dev gnutls-doc gnutls-bin libneon27-gnutls libcurl4-gnutls-dev libnl-dev python-dev
从网上下载YAJL(yajl_1.0.8.orig.tar.gz)
解压后进入该目录下,先安装C++/C编译器,
sudo apt-get install g++
然后继续执行一下命令:
sudo apt-get install build-essential
然后执行:
sudo apt-get install cmake ruby
最后执行:
(1)./configure
(2)make
(3)make install
从网上下载device-mapper.1.02.28.tgz,然后解压缩tar -zxvf device-mapper.1.02.28.tgz,
进入解压后的文件夹中:cd device-mapper.1.02.28。安装device-mapper。
(1) ./configure
(2) sudo make
(3) sudo make install
以上安装各个依赖包的作用:
libxml2 libxml2-dev解决:出现checking libxml2 xml2-config >= 2.6.0..
gnutls-doc gnutls-bin libneon27-gnutls libcurl4-gnutls-dev解决:configrue: error: you must install the gnutls library in order to compile and run libvirt
YAJL解决:configure: error: You must install the YAJL development package in order to compile libvirt
device-mapper解决:缺少device-mapper-devel
python-dev解决:You must install python-devel to build Python bindings
libnl-dev解决:configure: error: libnl-devel >= 1.1 is required for macvtap support
2.安装libvirt
cd进入libvirt文件夹
(1)./configure
(2)make
(3)make install
如果没有什么错误提示即安装成功
安装libvirt后出现的问题及解决办法
(1)解决
virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.11' not found (required by virsh)
virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.9' not found (required by virsh)
virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.10' not found (required by virsh)
virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.13' not found (required by virsh)
virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_PRIVATE_0.9.13' not found (required by virsh)
第一种:
定义shell变量 LD_LIBRARY_PATH
$ LD_LIBRARY_PATH=/usr/local/lib
$ export LD_LIBRARY_PATH
$ ./example
第二种:
修改系统动态链接库配置文件
(the system dynamic linker configuration)
进入目录/etc/ld.so.conf.d
添加一个文件libvirt.conf,内容是:
# libvirt default configuration
/usr/local/lib
更新动态链接库缓存
sudo ldconfig
(2)解决failed to connect socket to '/usr/local/var/run/libvirt/libvirt-sock':no such file or directory
添加libvirt用户组
sudo groupadd libvirt
添加当前用户到libvirt组里
sudo gpasswd -a root libvirt
记得要重启,才能有用
或者
做个链接:
ln -s /var/run/libvirt/libvirt-sock /usr/local/var/run/libvirt/libvirt-sock
如果有 libvirt: Remote error : unable to connect to '/usr/local/var/run/libvirt/libvirt-sock-ro': No such file or directory”
再做个链接
ln -s /var/run/libvirt/libvirt-sock-ro /usr/local/var/run/libvirt/libvirt-sock-ro
(3) error: ebiptablesDriverInit:4129 : essential tools to support ip(6) tables firewalls could not be located
编辑文件/usr/local/etc/libvirt/libvirtd.conf
取消一下几项的注释
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
unix_sock_dir = "/var/run/libvirt"修改为
unix_sock_dir = "/usr/local/var/run/libvirt"
auth_unix_ro = "none"
auth_unix_rw = "none"
最后:如果要启动自动运行libvirtd
编辑文件/etc/rc.local
在exit 0之前添加
sudo libvirtd &
(4)解决打开vir-manager时的错误
创建时因为相关资源路径问题可能会报以下错误
6.1 ******/usr/lib/xen/bin/qemu-dm:****
路径中xen应该是xen-4.1,解决办法如下
mkdir /usr/lib/xen -p
cp /usr/lib/xen-4.1/* -r /usr/lib/xen/
6.2 ****** libvirtError: POST操作失败: xend_post:来自 xen 守护进程的错误:****
查看日志 /var/log/xen/xend.log 和 /var/log/xen/qemu-dm-demo.log
日志显示/usr/share/qemu/keymaps/en-us could not be found, the keymaps ***
路径中qemu应该是qemu-linaro,解决办法如下
cp -r /usr/share/qemu-linaro/ /usr/share/qemu
这样创建过程基本没有问题了.
(特别声明,因为我们的项目需要,所以后面两步操作并不是必须的,只是本人为方便以后查资料写的)
/*************************************************************安装nfs******************************************************************/
配置nfs服务器需要安装:
sudo apt-get install nfs-common nfs-kernel-server portmap
nfs客户端只需要安装:
sudo apt-get install nfs-common
可以迁移的格式有:
cow qed vmdk vpc
打开/etc/exports文件,在末尾加入:
/nfs *(rw,sync,no_root_squash)
注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义, 各字段含义如下:
/nfs:要共享的目录
* :允许所有的网段访问
rw :读写权限
sync:资料同步写入内在和硬盘
no_root_squash:nfs客户端共享目录使用者权限
重启服务:
#sudo /etc/init.d/portmap restart <---重启portmap,很重要
#sudo /etc/init.d/nfs-kernel-server restart <---重启nfs服务
#showmount -e <---显示共享出的目录
/******************************************删除vir-manager默认存储池并新建自己的存储池*****************************************/
在virtualmaneger的默认pool存在的情况下在原来的文件夹下新建pool的步骤:
1)导出原来virtualmanager的默认pool配置文件,新建一个default.xml文件,内容为命令导出内容
具体命令:pool-dumpxml default
2)先删除原来的pool:
先不要打开virtualmanager,进入命令行virsh后使用pool-delete命令删除原来virtualmanager建的默认pool(删除的原因是这个默认的pool无法设置为自动启动)
具体命令:pool-delete default
3)新建一个自己的pool
具体命令:pool-define /default.xml (刚才新建的default.xml文件我放在了/下)
4)设置新建的pool为自动启动:
pool-autostart default
5)重启OK
注:中间出错的话一般是因为有些操作是pool活动状态下才进行的,有些则是在不活动状态下进行的,其他操作请使用help查看