您的位置:首页 > 运维架构 > Linux

Linux下编程工具的使用(2) - GCC编译器

2009-08-31 22:04 351 查看
[align=left]1KVM虚拟机的管理工具[/align][align=left]准确的来说,KVM仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机,需要更多的辅助工具。[/align][align=left]QEMU-KVM:在Linux系统中,首先我们可以用modprobe命令加载KVM模块,如果用RPM安装KVM软件包,系统会在启动时自动加载模块,QEMU是一个强大的虚拟软件,它可以虚拟不同的构架[/align][align=left]Virt-manager:尽管QEMU-KVM工具可以创建和管理KVM虚拟机,RedHat 为KVM开发了更多的辅助工具,比如 libvirt libguestfs等,原因是QEMU工具效率不高,不易于使用。[/align][align=left]2、安装配置KVM相关软件[/align][align=left]2.1系统要求:[/align][align=left]处理器需求:需要一台可以运行最新linux内核的Intel处理器(含VT虚拟化技术)或AMD处理器(含SVM安全虚拟机技术的AMD处理器,也叫AMD-V)[/align][align=left][root@kvm ~]# cat /etc/redhat-release[/align][align=left]CentOS release 6.3 (Final)[/align][align=left]2.2检查CPU:[/align][align=left][root@kvm ~]# egrep 'vmx|svm' --color=always/proc/cpuinfo[/align][align=left]如果输出的结果包含VMX,它是Intel处理器虚拟机技术标志:如果包含SVM,它是AMD处理器虚拟机技术的标志,如果你什么都没有得到,那应你的系统并没有支持虚拟化的处理,不能使用KVM,另处linux发行版本必须在64bit环境中才能使用KVM。[/align][align=left]3、安装centos 6.2 后下载163源配置文件[/align][align=left]http://mirrors.163.com/.help/CentOS6-Base-163.repo[/align][align=left]# cd /etc/yum.repos.d/ #进入源目录[/align][align=left]# cp CentOS-Base.repo CentOS-Base.repo.bak #备份源文件[/align][align=left]用下载的163源配置文件替换CentOS-Base.repo文件内容[/align][align=left]# yum update 系统升级[/align][align=left]如果不提示错误,CentOS-Base.repo文件中[/align][align=left]gpgcheck=0[/align][align=left]4、安装KVM[/align]
[root@kvm ~]#yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v
[root@kvm ~]#vi /etc/sysconfig/selinux
SELINUX=disabled
[align=left][root@kvm ~]#reboot[/align][align=left]5、重启后确认libvirtd是否正常启动、重启。[/align][align=left][root@kvm ~]# /etc/init.d/libvirtd restart[/align]
Stopping libvirtd daemon:                               [FAILED]
[align=left]Starting libvirtd daemon: [ OK ][/align][align=left]6、检查KVM是否加载成功[/align][align=left]显示结果如下表示kvm模块已经加载,如果没有输出信息,则表示没有加载成功:[/align][align=left][root@kvm yum.repos.d]# lsmod | grep kvm[/align][align=left]kvm_intel 52570 6[/align][align=left]kvm 314739 1 kvm_intel[/align][align=left]7、检查KVM是否成功安装[/align][align=left][root@kvm ~]# virsh list --all (--all关闭的也会显示)[/align][align=left]Id 名称 状态[/align][align=left]----------------------------------------------------[/align][align=left] 1 Win7 running[/align][align=left] 2 RedHat running[/align][align=left]8、各版本查询[/align][root@kvm ~]# kvm --versionQEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2), Copyright (c) 2003-2008 FabriceBellard[root@kvm ~]# virt-install --version0.600.0[root@kvm ~]# virsh --version0.9.109、修改qemu.conf配置
[root@kvm ~]#vi /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"修改vnc监听端口
[align=left] [/align][align=left]二、配置网络桥接[/align][align=left]http://www.techotopia.com/index.php/Creating_an_RHEL_6_KVM_Networked_Bridge_Interface[/align][align=left]已安装bridge-utils,添加修改配置文件来的更简单。以下是实际配置文件,eth0为物理网口,br0为桥接网口。[/align][align=left]1、安装tunctl[/align][align=left]# yum install -y tunctl[/align][align=left]2、禁用网络管理器:[/align][align=left]# chkconfig NetworkManager off 和桥接有冲突,要关闭[/align][align=left]# service NetworkManager stop[/align][align=left]3、修改eth0为物理网口,br0为桥接网口配置文件:[/align][align=left][root@CY-S01 network-scripts]# cat ifcfg-br0[/align][align=left]DEVICE="br0"[/align][align=left]TYPE="Bridge"[/align][align=left]ONBOOT="yes"[/align][align=left]BOOTPROTO=static[/align]
IPADDR=192.168.50.190
PREFIX=24
GATEWAY=192.168.50.1
DNS1=8.8.8.8
DELAY=0
[root@CY-S01 network-scripts]#cat ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="yes"
[align=left]ONBOOT=yes[/align][align=left]TYPE=Ethernet[/align][align=left]BRIDGE="br0"[/align][align=left]BOOTPROTO=none[/align][align=left]IPADDR=192.168.50.190[/align][align=left]PREFIX=24[/align][align=left]GATEWAY=192.168.50.1[/align][align=left]DEFROUTE=yes[/align][align=left]IPV4_FAILURE_FATAL=yes[/align][align=left]IPV6INIT=no[/align][align=left]NAME="System eth0"[/align][align=left]UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03[/align][align=left]DNS1=202.106.46.151[/align][align=left]HWADDR=00:1E:67:07:EC:30[/align][align=left][root@CY-S01 network-scripts]#[/align][align=left]4、最后重启网络[/align][align=left][root@CY-S01 network-scripts]# service network restart[/align][align=left]5、查看桥接网络[/align][align=left][root@CY-S01 network-scripts]# brctl show[/align][align=left]bridge name bridge id STP enabled interfaces[/align][align=left]br0 8000.0025901b11a2 no eth0[/align][align=left] vnet0[/align][align=left]virbr0 8000.525400aba808 yes virbr0-nic[/align][align=left] [/align][align=left]三、使用virt-install 工具安装guest 系统[/align][align=left][root@kvm /]# virt-install --name=qxm --ram 1024 --vcpus=2[/align][align=left]> --disk path=/var/lib/libvirt/images/qxm.img,size=20 --accelerate[/align][align=left]> --cdrom /mnt/cn_windows_7_ultimate_with_sp1_x86_dvd_u_677408.iso[/align][align=left]> --graphics vnc,password=123456,port=5920, --network bridge=br0 --force --autostart[/align][align=left]使用virt-install 工具,工具自动创建磁盘,默认是raw格式。[/align][root@CY-S01 vms]# qemu-img info centos.imgimage: centos.imgfile format: rawvirtual size: 10G (10737418240 bytes)disk size: 1.4G1、可以通过virt-viewer查看安装状态:[align=left][root@kvm virtual]# virt-viewer name[/align][align=left][root@kvm virtual]# virt-viewer name[/align][align=left]2、使用virt-install 工具安装虚拟机后,在目录/etc/libvirt/qemu/下生成xml 配置文件。[/align][root@kvm ~]# cd /etc/libvirt/qemu[root@kvm ~]# cat centos.xml<domain type='kvm'> 虚拟机类型<name>centos</name> 虚拟机名称<uuid>54da30ed-150d-514e-9803-4dc01bd50488</uuid> uuid唯一标示<memory unit='KiB'>1048576</memory> 指定虚拟机内存大小,给出了单位<vcpu placement='static'>2</vcpu> 虚拟机占用虚拟cpu个数,这里只物理cpu[align=left]的核,给的多。占用的物理资源越充裕[/align]<os><type arch='x86_64' machine='rhel6.3.0'>hvm</type> 指定虚拟系统架构<boot dev='hd'/> 启动类型,从硬盘启动</os><devices><emulator>/usr/libexec/qemu-kvm</emulator> 驱动程序,同上,使用的是qemu-kvm<disk type='file' device='disk'> 指定磁盘类型<driver name='qemu' type='raw' cache='none'/> 指定磁盘格式,这里是raw,也支持qcow2.<source file='/home/vms/centos.img'/> img文件路径<target dev='hda' bus='ide'/> 磁盘文件标示,驱动类型<address type='drive' controller='0' bus='0' target='0' unit='0'/><interface type='bridge'><mac address='52:54:00:11:57:e6'/> 自动生成,可以手动指定。<source bridge='br0'/> 桥接到哪一个接口</domain>3、使用virsh工具管理生成的虚拟机[align=left]A、[root@kvm ~]# virsh start centos 启动虚拟机 reboot start shutdown[/align]B、[root@kvm ~]# virsh list 列出当前运行的虚拟机Id Name State----------------------------------------------------1 centos running3 centos6332 runningC、[root@kvm ~]# ll /var/lib/libvirt/qemutotal 12srwxr-xr-x 1 root root 0 Aug 22 09:53 centos.monitor[align=left]这里的文件,是libvirtd在重启后,虚拟机也随着自动重启。[/align][align=left]D、动态查询kvm资源占用情况,每一台VM,对应一个qemu-kvm进程[/align][align=left][root@CY-S01 vms]# top -d 1 | grep kvm[/align]4、截取的kvm进程信息[root@kvm ~]# ps -aux | grep kvm<!--[if !supportLineBreakNewLine]--><!--[endif]-->附一: 其他问题[align=left]1、图形化配置:从菜单中启动,或者运行virt-manager进入图形管理界面,由于比较简单,在此不详述,不过img的位置要好好配置一下,kvm安装后会有一个默认位置,不注意的话容易占满空间。或者直接硬盘分区时单独给/var分一个区。[/align][align=left]2、虚拟机重新配置:[/align][align=left]虚拟机的配置文件保存在/etc/libvirt/qemu目录下,扩展名是xml。修改相应的文件即可重新配置虚拟机。[/align][align=left]3、虚拟机备份及恢复:[/align][align=left]备份:拷贝/etc/libvirt/qemu目录下的xml配置文件,以及xml中设置的img文件。[/align][align=left]恢复:进入virsh,执行define 目录下的xml文件路径[/align][align=left]virsh # define /etc/libvirt/qemu/winxp.xml[/align][align=left]4、开机自动启动虚拟机:[/align][align=left][root@kvm qemu]# virsh autostart Winxp[/align][align=left]5、克隆KVM虚拟机:[/align][align=left][root@kvm ~]# virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img[/align][align=left](-o 原始客体的名称,-n新客户端的名称,-f作为新客户端磁盘映像的新文件)[/align][align=left]6、虚拟机意外关机报下述错误:[/align][align=left][root@kvm qemu]# virsh start winxp[/align][align=left]错误:开始域 winxp 失败[/align][align=left]错误:Unable to read from monitor: Connection reset by peer[/align][align=left]解决方法:virsh managedsave-remove winxp[/align][align=left] [/align][align=left]附二: Virsh语法参数详解[/align][align=left]Autostart 自动开始一个域[/align][align=left]Create 从一个 XML 文件创建一个域[/align][align=left]Define 从一个 XML 文件定义(但不开始)一个域[/align][align=left]edit 编辑某个域的 XML 配置[/align][align=left]shutdown 关闭一个域[/align][align=left]start 开始一个(以前定义的)非活跃的域[/align][align=left]reboot 重新启动一个域[/align][align=left]suspend 挂起一个域[/align][align=left]resume 重新恢复一个域[/align][align=left]vncdisplay vnc 显示[/align][align=left] [/align][align=left]使用save来备份当前虚拟机的状态:[/align][align=left][root@kvm images]# virsh save --bypass-cache RedHat /var/lib/libvirt/images/test.img --running [/align][align=left]上面这个命令将RedHat的当前状态保存到/opt/vm2_save文件中,这个文件我看了一下,597M.[/align][align=left]--running参数表示下次restore回来的时候能够自动启动RedHat[/align][align=left]这个命令会导致RedHat被关闭。[/align][align=left] [/align][align=left]现在还原:必须先关闭虚拟机[/align][align=left][root@kvm images]# virsh shutdown RedHat[/align][align=left][root@kvm images]# virsh restore /var/lib/libvirt/images/test.img --bypass-cache --running (还原时不要指定虚拟机名称)[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: