Kvm安装及本地Yum源搭建

发布 : 2016-01-20 分类 : 大数据 浏览 :

Kvm安装及本地Yum源搭建

Markdown

0.查看Linux运行级别

1
[root@kvm ~]# runlevel

Markdown

1.更换yum源

1
http://mirrors.aliyun.com/

1.1.选择centos、epel镜像

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

1.2.修改默认yum源

1
2
[root@kvm ~]# cd /etc/yum.repos.d/
[root@kvm yum.repos.d]# vi yum.sh

1
2
3
4
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

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

1.3.清除yum缓存

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

1.4.生成缓存

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

2.安装kvm命令

1
2
[root@kvm ~]# yum install qemu-kvm
qemu/模拟器,具备模拟加速功能

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

3.安装虚拟化管理工具

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

Markdown

1
yum -y install httpd(安装Apache服务器) createrepo(创建私有云窗口的软件) reposync(创建同步的软件)
1
[root@kvm ~]# yum -y install httpd createrepo reposync

Markdown

1
[root@kvm ~]# netstat -natp

Markdown

3.1.查看yum源中仓库

1
[root@kvm html]# yum repolist

Markdown

3.2.搭建本地yum源

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

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

Markdown

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

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

Markdown

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

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

Markdown

3.2.4启动Apache服务

1
[root@kvm ~]# service httpd start

Markdown

3.3.访问本地YUM源

1
http://192.168.230.88/base/

Markdown

3.4.创建本地Yum源的仓库

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

Markdown

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

3.5.使用本地Yum源

1
2
[root@kvm yum.repos.d]# vi /etc/yum.repos.d/CentOS-Base.repo
http://192.168.230.88/base/

4.Kvm内核模块

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

Markdown

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

5.在kvm中创建虚拟机

5.1.创建虚拟机磁盘

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

Markdown

5.2.上传centos镜像文件

Markdown

5.3.yum源删除冲突软件

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

5.4.创建虚拟机

1
2
3
4
5
6
7
8
[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

出现错误

Markdown

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

1
2
3
4
5
[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

Markdown

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[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

Markdown

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

Markdown

5.6.进入虚拟机交互终端

1
[root@kvm kvmtest]# virsh

Markdown

5.6.1.启动虚拟机

1
virsh # start centos-6.5

Markdown

1
virsh # list --all

Markdown

Markdown

Markdown

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

Markdown

Markdown

5.6.2.进入虚拟机交互终端

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

Markdown

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

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

Markdown

Markdown

1
[root@localhost ~]# service network restart

Markdown

1
[root@localhost ~]# ifconfig

Markdown

5.6.4.virsh交互终端命令

1
2
3
4
5
6
7
8
9
10
11
12
• 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)
1
2
3
4
5
6
7
8
9
[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

Markdown

1
virsh # vcpuinfo 2

Markdown

1
virsh # edit 2

Markdown

Markdown

6.CPU虚拟化

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

Markdown

7.CPU硬件情况

1
[root@kvm libvirt]# numactl --hardware

Markdown

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

1
2
要通过xshell对kvm虚拟机进行管理的话
要在虚拟机上安装acpid
1
[root@localhost ~]# yum install acpid

Markdown

1
[root@localhost ~]# service acpid start

Markdown

1
[root@localhost ~]# chkconfig acpid on

Markdown

1
virsh # shutdown 2

Markdown

Markdown

1
2
3
4
5
6
7
8
virsh # list
Id Name State
----------------------------------------------------

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

Markdown

1
virsh # vcpuinfo centos-6.5

Markdown

Markdown

Markdown

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

Markdown

本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2016/01/20/Kvm安装及本地Yum源搭建/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹