Kvm安装及本地Yum源搭建

Kvm安装及本地Yum源搭建

0.查看Linux运行级别

[root@kvm ~]# runlevel

1.更换yum源

http://mirrors.aliyun.com/

1.1.选择centos、epel镜像

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

1.2.修改默认yum源

[root@kvm ~]# cd /etc/yum.repos.d/

[root@kvm yum.repos.d]# vi yum.sh

mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

[root@kvm yum.repos.d]# sh yum.sh

1.3.清除yum缓存

[root@kvm yum.repos.d]# yum clean all

1.4.生成缓存

[root@kvm yum.repos.d]# yum makecache

2.安装kvm命令

[root@kvm ~]# yum install qemu-kvm

qemu/模拟器,具备模拟加速功能

libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以
由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,
vmware,XEN,Hyper-v, LXC 等 Hypervisor。
• Virsh:基于 libvirt 的 命令行工具 (CLI)
• Virt-Manager:基于 libvirt 的 GUI 工具

3.安装虚拟化管理工具

[root@kvm ~]# yum -y install virt-manager libvirt libvirt-python python-virtinst bridge-utils

yum -y install httpd(安装Apache服务器) createrepo(创建私有云窗口的软件) reposync(创建同步的软件)

[root@kvm ~]# yum -y install httpd createrepo reposync

[root@kvm ~]# netstat -natp

3.1.查看yum源中仓库

[root@kvm html]# yum repolist

3.2.搭建本地yum源

3.2.1搭建本地yum源会节约大量的出口带宽

[root@kvm yum.repos.d]# yum -y install yum-utils 
yum-utils中有个命令是同步命令reposync 用来同步远程的yum repository

3.2.2参考reposync的帮助,直接把想要同步的yum源直接定位到希望下载的某个目录,

[root@kvm yum.repos.d]# reposync --help
-d 来删除本地老旧, yum 源已经不存的安装包

3.2.3开始自动更新 yum 源到本地文件夹

[root@kvm html]# reposync --repoid=base
[root@kvm html]# reposync --repoid=epel

3.2.4启动Apache服务

[root@kvm ~]# service httpd start

3.3.访问本地YUM源

http://192.168.230.88/base/

3.4.创建本地Yum源的仓库

reposync自动同步想要的yum源到指定的路径,因为每次同步后,内容可能有所改变,所以需要重新执行createrepo命令重新创建YUM仓库
[root@kvm ~]# createrepo --help

[root@kvm ~]# cretaerepo --update /var/www/html/base/

3.5.使用本地Yum源

[root@kvm yum.repos.d]# vi /etc/yum.repos.d/CentOS-Base.repo

http://192.168.230.88/base/

4.Kvm内核模块

kvm嵌入到了Linux内核中去
[root@kvm ~]# lsmod | grep kvm

如果kvm没有嵌入到Linux内核中
可以通过命令强制嵌入到Linux内核中
[root@kvm ~]# modprobe kvm
[root@kvm ~]# modprobe kvm-intel

5.在kvm中创建虚拟机

5.1.创建虚拟机磁盘

[root@kvm kvmtest]# qemu-img create -f qcow2 /kvmtest/centos-6.5.qcow2 10G

5.2.上传centos镜像文件

5.3.yum源删除冲突软件

[root@kvm kvmtest]# yum -y install virt-install
[root@kvm kvmtest]# yum -y remove virt-install

5.4.创建虚拟机

[root@kvm kvmtest]# virt-install --virt-type kvm --name centos-6.6 --ram 1024 \
> --vcpus 1 \
> --cdrom=/kvmtest/CentOS-6.6-x86_64-minimal.iso \
> --disk /kvmtest/centos-6.6.qcow2,format=qcow2 \
> --network network=default \
> --graphics vnc,listen=0.0.0.0 --noautoconsole \
> --os-type=linux --os-variant=rhel6
ERROR    Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

出现错误

5.4.1.出错是因为libvirted服务没有启动

[root@kvm kvmtest]# service libvirtd start
Starting libvirtd daemon:                                  [  OK  ]
[root@kvm kvmtest]# service libvirtd status
libvirtd (pid  1951) is running...
[root@kvm kvmtest]# chkconfig libvirtd on

[root@kvm kvmtest]# virt-install --virt-type kvm --name centos-6.5 --ram 1024 \
> --vcpus 1 \
> --cdrom=/kvmtest/CentOS-6.5-x86_64-minimal.iso \
> --disk /kvmtest/centos-6.5.qcow2,format=qcow2 \
> --network network=default \
> --graphics vnc,listen=0.0.0.0 --noautoconsole \
> --os-type=linux --os-variant=rhel6

virt-install --virt-type kvm --name centos-6.5 --ram 1024 \
--vcpus 1 \
--cdrom=/kvmtest/CentOS-6.5-x86_64-minimal.iso \
--disk /kvmtest/centos-6.5.qcow2,format=qcow2 \
--network network=default \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel6

5.5.打开远程网络连接软件

5.6.进入虚拟机交互终端

[root@kvm kvmtest]# virsh

5.6.1.启动虚拟机

virsh # start centos-6.5

virsh # list --all

发现多了一个桥接设备
[root@kvm kvmtest]# brctl show

5.6.2.进入虚拟机交互终端

发现无法用键盘操作的原因是中文输入法对这个工具产生了干扰

5.6.3.编写kvm虚拟机的配置文件

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

[root@localhost ~]# service network restart

[root@localhost ~]# ifconfig

5.6.4.virsh交互终端命令

• virsh list # 显示本地活动虚拟机
• virsh start openSuse # 启动名字为ubuntu的非活动虚拟机
• virsh create ubuntu.xml # 创建虚拟机(创建后,虚拟机立即执行,成为活
动主机)
• virsh suspend openSuse # 暂停虚拟机
• virsh resume ubuntu # 启动暂停的虚拟机
• virsh shutdown ubuntu # 正常关闭虚拟机
• virsh destroy ubuntu # 强制关闭虚拟机
• virsh dominfo openSuse # 显示虚拟机的基本信息
• virsh dumpxml openSuse # 显示虚拟机的当前配置文件
• virsh setmem ubuntu 51200 # 给不活动虚拟机设置内存大小
• virsh setvcpus ubuntu 4 # 给不活动虚拟机设置cpu个数
• virsh edit ubuntu # 编辑配置文件(一般用在刚定义完VM)

[root@kvm kvmtest]# cd /etc/libvirt/
[root@kvm libvirt]# ll
total 48
-rw-r--r-- 1 root root   518 May 11  2016 libvirt.conf
-rw-r--r-- 1 root root 12963 May 11  2016 libvirtd.conf
-rw-r--r-- 1 root root  1176 May 11  2016 lxc.conf
drwx------ 2 root root  4096 Jan 14 09:38 nwfilter
drwx------ 3 root root  4096 Jan 14 16:55 qemu
-rw-r--r-- 1 root root 14998 May 11  2016 qemu.conf

virsh # vcpuinfo 2

virsh # edit 2

6.CPU虚拟化

一个 KVM 虚机即一个 Linux qemu-kvm 进程,与其他Linux 进程一样被Linux 进程调度器调度。
• KVM虚机包括虚拟内存、虚拟CPU和虚机I/O设备,其中,内存和CPU的虚拟化由KVM内核模块负责实现,I/O 设备的虚拟化由QEMU负责实现。
• KVM户机系统的内存是qumu-kvm进程的地址空间的一部分。
• KVM虚机的vCPU作为线程运行在qemu-kvm进程的上下文中。

7.CPU硬件情况

[root@kvm libvirt]# numactl --hardware

8.管理VM(重启,关闭)

要通过xshell对kvm虚拟机进行管理的话
要在虚拟机上安装acpid

[root@localhost ~]# yum install acpid

[root@localhost ~]# service acpid start

[root@localhost ~]# chkconfig acpid on

virsh # shutdown 2

virsh # list
Id    Name                           State
----------------------------------------------------

virsh # list --all
Id    Name                           State
----------------------------------------------------
-     centos-6.5                     shut off

virsh # vcpuinfo centos-6.5

[root@kvm ~]# iptables -t nat -S

你可能感兴趣的:(hadoop生态组件)