CentOS虚拟化尝试
KVM
///确认cpu是否支持kvm,确认支持,主板还得开启VT和HT
egrep '(vmx|svm)' --color=always /proc/cpuinfo
///yum安装rpm包
yum -y install qemu-kvm libvirt python-virtinst bridge-utils virt-manager tigervnc-server tigervnc xclock
///确认kvm内核模块有加载,如果没有直接modprobe kvm到rc.local中。
lsmod | grep kvm
stat /dev/kvm
///修改内核配置文件,确认ip转发
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
///在线生效内核
sysctl -p
///更改为以下项。
vi /etc/libvirt/qemu.conf
user = "root"
group = "root"
dynamic_ownership = 0
///重启libvirtd服务。注意:确认开机自启动,在chkconfig中
/etc/init.d/libvirtd restart
///更改网桥配置
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
BROADCAST=192.168.200.255
IPADDR=192.168.200.180
NETMASK=255.255.255.0
NETWORK=192.168.200.0
ONBOOT=yes
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=
ONBOOT=yes
BRIDGE=br0
///安装一台测试虚机,用windows客户端工具vnc viewer 登录
virt-install \
--name test1 \
--ram 2048 \
--vcpus=2 \
--disk path=/root/test1.img,size=20 \
--accelerate \
--cdrom /root/CentOS-6.5-x86_64-bin-DVD1.iso \
--graphics vnc,listen=0.0.0.0
///文本方式安装一台测试虚机,可以用virt看到进度。
virt-install --network bridge=br0 --name tecmint-virt01 --ram=1024 --vcpus=1 --disk path=/var/lib/libvirt/images/tecmint-virt01.img,size=5 --graphics none --location /root/OL6.7x8664.iso --extra-args="console=tty0 console=ttyS0,115200"
注意:创建好的虚机vnc或者virt在系统界面可能不能输入什么东东,还需要配置键盘那块就可以解决。
Docker
安装
yum -y install docker-io
查看版本
docker -v
查看服务状态
service docker start
service docker status
查询在线支持的镜像
docker search centos
下载
docker pull docker.io/nickistre/centos-lamp
查看现有镜像版本
docker images
运行
docker run -i -t b45f1e1c24ef /bin/bash
查看历史运行docker container
docker ps -a
查看现有运行docker container
docker ps
重新指定运行进入container
docker start c590278e3f2a
docker attach c590278e3f2a
查看container log
docker logs b8d975c0f617
以后台方式运行
docker run -d -p 27017:27017 b45f1e1c24ef
进入container
docker exec -it b45f1e1c24ef /bin/bash
p2v之virt
介绍
Virt P2V 由 virt-p2v-server(包括在 virt-v2v 软件包中)和 P2V client(红帽客户门户网站所提供的 rhel-6.x-p2v.iso)组成。rhel-6.x-p2v.iso 是一个基于定制 Red Hat Enterprise Linux 6 映像的可引导磁盘映像。为了把一个物理机转换为一个可以在 Red Hat Enterprise Virtualization 或由 libvirt 管理的 KVM 上运行的虚拟机,使用 rhel-6.x-p2v.iso 引导一个机器,并把它连接到一个安装了 virt-v2v 的 V2V 转换服务器来进行转换。
注意事项
请遵循以下规则,否则可能会造成数据丢失或磁盘损坏。
Physical to Virtual(P2V)需要一个带有 virt-v2v-0.8.7 或更高版本的 Red Hat Enterprise Linux 6 虚拟主机。您可以使用 $ rpm -q virt-v2v 来检查 virt-v2v 的版本。
请注意,您不能使用 Red Hat Enterprise Linux 5 作为转换服务器。另外,转换服务器所带的 virt-v2v 软件包的版本也不能低于 0.8.7-6.el6。
对于某些版本的操作系统,把使用软件 RAID 的物理机转换为虚拟机会有一些问题。把一个在软件 RAID md 设备上引导文件系统的 Red Hat Enterprise Linux 6 物理机转换为虚拟机没有问题,但是,一个在软件 RAID md 设备上引导文件系统的 Red Hat Enterprise Linux 4 或 Red Hat Enterprise Linux 5 物理机无法被转换为虚拟机。当前,我们还没有解决这个问题的方法。
先决条件
对于使用 P2V client 进行转换的物理机,它的硬件必须满足以下条件才可以成功引导 P2V client:
必须可以通过 PXE、光驱设备(CD、DVD)或 USB 引导。
最少有 512MB 内存。
一个以太网连接。
访问终端设备(键盘、显示器、鼠标)。
virt-v2v 支持的操作系统:
Red Hat Enterprise Linux 3.9
Red Hat Enterprise Linux 4
Red Hat Enterprise Linux 5
Red Hat Enterprise Linux 6
Windows XP
Windows Vista
Windows 7
Windows Server 2003
Windows Server 2008
操作步骤
在使用 P2V 前,您需要准备您的转换服务器、下载并准备 rhel-6.x-p2v.iso 引导介质。如果了解更详细的信息,请参阅 Red Hat Enterprise Linux Installation Guide。请注意,i386 和 x86_64 系统使用同一个 ISO 映像。
转换服务器就是一个安装了 virt-v2v 软件包的 Red Hat Enterprise Linux 6 或更高版本的物理服务器。 安装 virt-v2v 中的内容安装 virt-v2v(virt-v2v 的版本必须是 0.8.7-6 或更高版本)。
在 virt-v2v 安装完成后,转换服务器需要被配置来接受从 P2V client 的连接。P2V client 需要以 root 身份通过 SSH 连接到转换服务器,因此转换服务器需要允许 root 通过 SSH 登录。
允许 root 通过 SSH 登录:
以 root 的身份编辑 sshd_config 文件(/etc/ssh/sshd_config):
nano /etc/ssh/sshd_config
在这个文件的 Authentication 数据段中添加一行 PermitRootLogin yes。这行内容可能已经存在,如果它被注释掉(使用"#"),您只需要删除 "#"。
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
保存修改过的 /etc/ssh/sshd_config 文件。
重启 SSH 服务器:
service sshd restart
现在,您将可以以 root 的身份通过 SSH 连接到转换服务器。
现在,您将可以以 root 的身份连接到转换服务器。转换服务器需要被预先配置来指定所创建虚拟机的配置。这些配置信息包括在转换服务器的 /etc/virt-v2v.conf 文件中的目标配置集中。
在 virt-v2v.conf 中定义目标配置集:
以 root 身份编辑 /etc/virt-v2v.conf:
nano /etc/virt-v2v.conf
找到文件尾部,在最后一个 </virt-v2v> 前添加以下内容:
<profile name="myrhev">
<method>rhev</method>
<storage format="raw" allocation="preallocated">
nfs.share.com:/export1
</storage>
<network type="default">
<network type="network" name="rhevm"/>
</network>
</profile>
其中:
Profile Name 是目标配置集的名称。
Method 是最终虚拟机控制程序系统的类型(rhev 或 libvirt)。
Storage Format 是输出的存储格式(raw 或 qcow2)。
Allocation 是输出的分配格式(preallocated 或 sparse)。
Network type 指定了当导入到 Red Hat Enterprise Virtualization 后网络接口所连接到的网络。第一个 network type 项包括了转换前的网络配置;第二个 network type 项映射到转换后的网络配置。在以上实例中,所有检测到的网卡都被映射到名为 rhevm 的管理网络上。
重要
<storage format> 标签的值(在这个实例中是 "nfs.share.com:/export1")必须和 <method> 标签的值相匹配。在以上实例中,输出是 "rhev",因此与存储相关的值必须是一个已经初始化的 NFS 共享。如果输出是 libvirt,与存储格式相关的值必须是一个存在于转换服务器本地的、一个已经初始化的存储域,例如 "default"。
您现在已经创建了一个目标配置集,它定义了在 P2V 转换完成后虚拟机的配置。
创建一个可引导介质
P2V 使用可引导介质来创建物理机硬盘的可引导映像,并把它发送到转换服务器来导入到虚拟机管理程序系统(hypervisor)。您需要一个可以下载 rhel-6.x-p2v.iso ISO 的红帽订阅。请根据 Red Hat Enterprise Linux Installation Guide 中的相关介绍来准备您的可引导介质。请注意,i386 和 x86_64 系统使用同一个 ISO 映像。
最新版本的 rhel-6.x-p2v.iso 可以从 https://rhn.redhat.com/rhn/channels/PackageList.do?filter_string=virt-p2v&cid=10508 获得。这个 ISO 文件将会被安装在 /usr/share/virt-p2v/。
创建可引导介质:
rhel-6.x-p2v.iso 文件可以通过 3 种方式使用:作为一个可引导磁盘;作为一个 PXE 引导映像;作为一个可引导的 USB 设备。
把 ISO 刻录到一个空白的 CD-ROM 或 DVD-ROM 中,然后把它插入到要被转换的物理机的光驱中。您可能需要修改您的 BIOS 设置来使光驱作为机器的第一个引导设备。
使用 ISO 创建一个可引导 USB 介质。您可能需要修改您的 BIOS 设置来使 USB 设备作为机器的第一个引导设备。另外,一些 BIOS 并不支持从 USB 引导。P2V client 磁盘映像大约有 100MB,您所使用的 USB 设备需要有足够的空间来容纳它。
在您的 PXE 服务器上准备一个 PXE 引导映像。您可能需要修改您的 BIOS 设置来使 PXE 作为机器的第一个引导设备。
如需了解更多关于创建引导介质的信息,请参阅 附录 A, 额外步骤。
您已经为转换做好了准备工作,您现在可以开始进行物理机到虚拟机的转换。
把物理机转换为虚拟机
到目前为止,您已经准备好了转换服务器,并选择了可引导介质。下一步,您需要引导 P2V client,把它连接到转换服务器,并对您的物理机进行转换。转换的过程可以会需要很长时间来完成,尤其是您需要转换大容量物理磁盘时。
过程 5.1. 把一个物理机转换为虚拟机
在转换服务器上引导 P2V client 引导介质。
在您所创建的转换服务器上引导 P2V client 引导介质。因为 P2V client 是在 Red Hat Enterprise Linux 6 映像上构建的,所以 Red Hat Enterprise Linux 6 splash 会在引导时被显示。
如果需要,对网络进行配置。
通常情况下,P2V client 使用 DHCP 自动配置网络。如果不能自动配置网络,您需要手工配置它。您需要配置 IP Address、Gateway 和 Prefix 项。根据您的具体情况输入相应的值,点 Use these network settings。
请注意,P2V client 不支持 NIC 组合(NIC teaming)配置。
Configure Networking.
图 5.1. P2V client 上的网络配置
注意
如果您需要手动配置您的网络,请在引导前把物理机从网络中断开。
连接到转换服务器。
当配置完网络后,您会被提示输入连接到转换服务器的连接信息。它们包括 Hostname(主机名或 IP 地址)、Username(必须是 root)和 Password。输入相关信息后点 Connect。
Connect to conversion server.
图 5.2. 连接到转换服务器
配置目标虚拟机并选择要转换的硬件。
在连接到转换服务器后,配置要被附加到被转换物理机上的虚拟硬件,选择要被转换的物理硬件。
Enter the details for the outputted virtual machine.
图 5.3. 配置虚拟机
在 Target Properties 中配置以下内容:
从下拉菜单中选择一个 Destination Profile。这个菜单中的选项反应了转换服务器上的 /etc/virt-v2v.conf 文件中的目标配置集。
在 Target Properties 的 Name 项中输入转换所生成的虚拟机的名称。
Target Properties 中的 Number of CPUs 和 Memory(MB) 的值会被自动生成。如果您需要在输出的虚拟机上使用更多的 CPU 和(或)内存,您可以修改这两个项的值。
在 Fixed Storage 中选择一个或多个需要被转换的设备。最少一个包括了所需操作系统的固定磁盘需要被转换。
在 Removable Media 中选择一个或多个需要转换的设备。
在 Network Interfaces 中选择一个或多个需要转换的网络接口。
可选项:如果您希望把调试信息输出到一个文件中,请选择 Enable server-side debugging 选项。这会使服务器在转换过程中写 LIBGUESTFS_TRACE 和 LIBGUESTFS_DEBUG 输出。
请注意,Enable server-side debugging 选项只在 Red Hat Enterprise Linux 6.5 或更高版本中有效。请参阅 第 6.2 节 "调试 P2V 转换" 来获得更多与调试 P2V 转换相关的内容。
点 Convert。
Conversion started.
图 5.4. Conversion in process
当转换完成后,一个转换成功的信息会被显示。您可以关闭物理机。
The screen reads "A guest has been successfully created on the target server. Remove the temporary boot device from this machine and press 'Power Off' to continue." A Power Off button appears below the text in this window.
图 5.5. Conversion successfully completed
您已经把物理机转换为虚拟机。现在,您就可以把转换的虚拟机导入到虚拟机监控程序系统中来运行。
把虚拟机导入到虚拟机监控程序系统中来运行
您已经把物理机转换为虚拟机。现在,您就可以在虚拟机监控程序系统中运行虚拟机。
如需了解更多关于在使用 virt-manager 的 Red Hat Enterprise Linux 上运行虚拟机的信息,请参阅:
运行转换的虚拟机
在转换过程成功完成后,virt-v2v 会为转换的虚拟机创建一个新的 libvirt 域(与被转换虚拟机的原始名同名)。它可以使用 libvirt 工具(如 virt-manager)启动。
注意
目前,virt-v2v 还不能重新配置虚拟机的网络配置。如果被转换的虚拟机没有连接到它们原来的相同子网中,这个虚拟机的网络配置就可能需要被手工更新。
在默认的情况下,Red Hat Enterprise Linux 6 使用 NFSv4,这不需要进行其它配置。但是,对于使用 NFSv2 和 NFSv3 的客户端,用来运行 virt-v2v 的系统需要运行 rpcbind 和 nfslock 服务,网络也需要被配置为运行 NFS 访问存储服务器。
当前,virt-v2v 还不支持对带有多于 4 个 IDE 磁盘的虚拟机进行转换来在 Red Hat Enterprise Virtualization 中运行。转换带有 5 个或更多磁盘的虚拟机的操作将会失败。
参考
http://www.m690.com/archives/tag/virt-p2v
http://guwenwu285.iteye.com/blog/1633748
http://xstarcd.github.io/wiki/Cloud/qcow2_raw_vmdk.html
OpenStack Neutron 之 L3 HA
http://www.ibm.com/developerworks/cn/cloud/library/1506_xiaohh_openstackl3/