搭建KVM服务器、自定义虚拟机

一、关于openstack安装的环境需求
1.yum源(网络yum源)
yum 源必须要有repodata 作为索引,即有repodata目录才可以作为yum 源。
创建repodata :#createrepo (命令执行后当前目录下就有了repodata目录)
更新:createrepo --update (也可以删除repodata再重新创建)
2.dns服务器
3.时间服务器
4.2台虚拟机(8G+6G)
5.禁用selinux
vim /etc/selinux/config
SELINUX=disabled
6.禁用firewalld
systemctl stop firewalld
systemctl disabled firewalld//该命令虽然停止了防火墙自身调用,但是当其他程序调用的时候他还是会启动
systemctl mask firewalld //该命令会把firewalld服务的连接变成/dev/null ,别的程序调用他不会启动(当启用的时候就敲systemctl unmask firewalld命令)

二、KVM虚拟机
1、虚拟化:x个物理资源成y个逻辑资源(就是一台物理机虚拟成n个虚拟机)
2、虚拟化主要厂商及产品:
VMware : VMware Workstation、vSphere(商业版软件 服务器版用esxi软件 终端用vcenter软件管理虚拟机)
RedHat: KVM、RHEV
Citrix: Xen
3.KVM的组成:
-- KVM:是linux内核的模块(可以通过lsmod命令查看),需要CPU的支持,采用硬件辅助虚拟化技术
-- QEMU : 是一个虚拟化的仿真工具,完成对硬件的虚拟化支持,会模拟出其他的硬件(显卡声卡等)
-- Libvirt : 是一个对虚拟化管理的接口和工具
4.需要安装的软件
-- qemu-kvm : 为kvm提供底层硬件仿真支持
-- libvirt-dremon : libvirtd守护进程,管理虚拟机
-- libvirt-client : 用户端软件,提供客户端管理命令
-- libvirt-daemon-driver-qemu : libvirtd连接qemu的驱动

5.虚拟机的组成
-- 一个xml文件(虚拟机配置声明文件,定义虚拟机的各种参数),默认在/etc/libvirt/qemu/下
-- 一个磁盘镜像文件(虚拟机的硬盘,真机用一个很大的文件来充当虚拟机的硬盘,保存虚拟机的操作系统和文档数据),位置在/var/lib/libvirt/images/下
磁盘镜像文件格式:raw和qcow2
qcow2是KVM默认的,占用空间小,支持压缩、后端盘复用和快照

三、virsh 命令工具介绍
virsh命令进入交互模式,--help 产看命令帮助
list (--all) //列出虚拟机
nodeinfo //查看物理机的信息
dominfo 虚拟机名 //查看虚拟机的信息
net-list (--all) //查看虚拟交换机
start | reboot | shutdown | destroy | autostart 虚拟机名 //运行|重启|关闭|强制关闭|开机自动运行
--连接自己的virsh管理器: # virsh 或# virsh -c qemu:///system
--连接别人的virsh管理器:
virsh -c qemu+ssh://176.233.3.17/system
net-list //查看虚拟网络
net-define vbr.xml //创建虚拟网络
net-undefine vbr //删除虚拟网络
net-start vbr //启动虚拟网络
net-destroy vbr //停用虚拟网络
net-edit vbr //修改vbr网络的配置

四、自定义虚拟机
步骤:
1.安装软件(参见二、4)
2.搭建网络yum源
光盘作为 yum 源 CentOS7-1708.iso (共9591包)
#vim /etc/yum.repos.d/centos.repo
[centos7]
name=centos7
baseurl=ftp://176.233.3.17/centos
gpgcheck=0
enabled=1
:wq

3.禁用selinux(参见一、5)
4.禁用firewalld(参见一、6)
5.安装虚拟网桥
#vim /etc/libvirt/qemu/network/vbr.xml
<network>
<name>vbr</name> //vbr是虚拟交换机的名字
<bridge name="vbr"/> //vbr是网卡的名字(写一样便于辨认)
<forward mode="nat"/>
<ip address="192.168.1.254" netmask="255.255.255.0">
<dhcp>
<range start="192.168.1.100" end="192.168.1.200"/>
</dhcp>
</ip>
</network>
#virsh //进入虚拟机管理器
#net-define vbr.xml //创建虚拟网络
#net-start vbr //启动
#net-autostart vbr //开机自启

6.创建磁盘文件
#cd /var/lib/libvirt/images
#qemu-img create -f qcow2 node.img 8G

7.新建虚拟机
#virt-manager
选择网络安装—>前进
URL:ftp://176.233.3.17/centos (网络yum源的地址)—>前进
RAM:2048 CPU:2 —>前进
选择或创建自定义存储:管理—>选择node.img(步骤6中创建的镜像)—>选择卷—>前进
选择网络:虚拟网络‘vbr’(步骤5中创建的网桥)—>完成
语言选择English(由于创建的虚拟机是模板虚拟机,因此需要满足共性)
安装分区:手动分区,选择标准分区,只添加一个根分区
设置密码(此密码可用于以该虚拟机为模板创建的虚拟机的root密码)

五、虚拟机模板制作
初始化刚安装好的系统:
1.禁用selinux
#vi /etc/selinux/config
SELINUX=disabled

2.网卡及配置文件设置
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0" //网卡的名字
ONBOOT="yes" //开机是否启动
NM_CONTROLLED="no" //拒绝接受NetworkManager服务的管理
TYPE="Ethernet" //网卡设备 还有一种类型是bridge交换机
BOOTPROTO="dhcp" //dhcp动态IP
//r如果BOOTPROTO="static"则以下三项取消注释
#IPADDR="192.168.1.50"
#PREFIX="24"
#GATEWAY="192.168.1.254"

3.停止并卸载防火墙与NetworkManager
systemctl stop firewalld
systemctl stop NetworkManager
yum remove -y NetworkManager- firewalld- python-firewall

4.重启虚拟机(重启后确保可以上网)
5.配置yum源
#vi /etc/yum.repo/local.repo
[local_repo]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/centos7"
enabled=1
gpgcheck=0
:wq
#yum -y install bash-completion //命令行自动补齐,重启生效

6.验证数字签名
下载 RPM-GPG-KEY-CentOS-7 //包在yum源的文件夹里,也可scp到虚拟机里
导入 rpm --import RPM-GPG-KEY-CentOS-7
修改 local.repo gpgcheck=1 //开启数字验证
使用 yum install lftp lrzsz 验证

ps:lftp 的功能
--可以连自己的ftp: lftp 192.168.4.11
--可以连对方的ftp: lftp sftp://192.168.4.12 -u root
s表示ssh ,即使对方没开ftp,但开了ssh ,也可以在对方的ftp上操作

7.禁用空路由
vim /etc/sysconfig/network
NOZEROCONF="yes"
不禁用的话可能会在某种情况下影响计算机的通讯

8.添加串口终端(可以console 虚拟机)
#vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed ‘s, release .*$,,g‘ /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200"
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=ttyS0,115200n8"
GRUB_DISABLE_RECOVERY="true"
GRUB_DISABLE_LINUX_UUID="true"
GRUB_ENABLE_LINUX_LABEL="true"
:wq

修改完之后创建引导文件
#grub2-mkconfig -o /boot/grub2/grub.cfg
#beboot
修改/etc/fstab ,把UUID改成系统设备名(用blkid命令查看uuid对应的磁盘设备)

9.去除个性化信息
安装分区扩展软件
#yum -y install cloud-utils-growpart

设置第一次开机自动扩容根目录
#chmod 755 /etc/rc.local

在 rc.local 里加入如下配置
###
/usr/bin/growpart /dev/vda 1
/usr/sbin/xfs_growfs /
/usr/bin/sed ‘/^###/,$d‘ -i /etc/rc.d/rc.local

10.关闭虚拟机后执行信息清理工作(真机)
设置语言为英文
#LANG=en_US.UTF-8
#virt-sysprep -d 虚拟机名

11.删除虚拟机定义
#virsh undefine 虚拟机名

六、快速创建虚拟机
创建 2 个虚拟机
要求:
虚拟机1
8G 内存
2块网卡
第一块网卡连接虚拟交换机 vbr
第二块网卡连接虚拟交换机 private1
设置静态 IP,默认网关 192.168.1.254

 2块硬盘
 其中 / 的 vda1 要求 50G
 vdb  20G

虚拟机2
6G 内存
2块网卡
第一块网卡连接虚拟交换机 vbr
第二块网卡连接虚拟交换机 private1
设置静态 IP,默认网关 192.168.1.254
要求与第一台虚拟主机的两个 IP 都能 ping 通
硬盘
/ 的 vda1 要求 50G

1.开启虚拟网卡
#virsh net-start default
#virsh net-autostart default
//将所有的虚拟网卡开启并设置成开机自启动

2.创建磁盘文件
#cd /var/lib/libvirt/images
#qemu-img create -b node.img -f qcow2 node1.img 50G
#qemu-img create -f qcow2 disk.img 20G

3.更改虚拟机node1的配置文件
#virsh edit node1
修改内存大小为8G:
<memory unit=‘KiB‘>8192000</memory>
<currentMemory unit=‘KiB‘>8192000</currentMemory>
添加第二块硬盘:(在原来disk后面添加)
<disk type=‘file‘ device=‘disk‘>
<driver name=‘qemu‘ type=‘qcow2‘/>
<source file=‘/var/lib/libvirt/images/disk.img‘/>
<target dev=‘vdb‘ bus=‘virtio‘/>
</disk>
添加网卡(在原来interface后面添加)
<interface type=‘bridge‘>
<source bridge=‘private1‘/>
<model type=‘virtio‘/>
</interface>

4.启动虚拟机
#virsh start node1
#virsh console node1

5.配置网卡IP
#cd /etc/sysconfig/network-scripts/
配置eth0网卡IP
#vim ipcfg-eth0
DEVICE="eth0" #虚拟网卡的名字
ONBOOT="yes" #在系统启动时是否启动这个网卡
NM_CONTROLLED="no" #拒绝接受networkmanager的管理
TYPE="Ethernet" #表示它是一个网卡(Bridge表示是一个交换机)
BOOTPROTO="none" #如何配置IP地址=static(静态IP),dhcp(自动分配,需要将下面三行注释掉),none(不处理)
IPADDR="192.168.1.100" #IP地址
PREFIX="24" #子网掩玛
GATEWAY="192.168.1.254" #默认网关
:wq

配置eth1网卡
#cp ipcfg-eth0 ipcfg-eth1
#vim pcfg-eth1
DEVICE="eth1"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="none"
IPADDR="192.168.4.100"
PREFIX="24"
:wq

重启配置文件
#systemctl restart network

6.DNS服务器
(真机):
#yum -y install bind bind-chroot
#vim /etc/named.conf
listen-on port 53 { 192.168.1.254; };
allow-query { any; };
forwarders { 202.106.196.115; };
dnssec-enable no;
dnssec-validation no;
:wq

7.时间服务器
#yum install -y chrony
(真机):
#vim /etc/chrony.conf
server ntp1.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0

(虚拟机):
#yum install -y chrony
#vim /etc/chrony.conf
server 192.168.1.254 iburst
检查是否同步成功:
chronyc sources -v

  • 同步成功,+ 备胎 , ? 同步失败

原文地址:http://blog.51cto.com/13460306/2160640

时间: 2024-11-09 09:43:06

搭建KVM服务器、自定义虚拟机的相关文章

搭建KVM服务器

搭建KVM服务器安装虚拟化服务器平台必备软件? qemu-kvm – 为 kvm 提供底层仿真支持? libvirt-daemon – libvirtd 守护进程,管理虚拟机? libvirt-client – 用户端软件,提供客户端管理命令? libvirt-daemon-driver-qemu – libvirtd 连接 qemu 的驱劢可选功能– virt-install 系统安装工具 – virt-manager # 图形管理工具– virt-v2v # 虚拟机迁移工具– virt-p2

Service系统服务(一):安装一个KVM服务器、KVM平台构建及简单管理、virsh基本管理操作、xml配置文件的应用、为虚拟机制作快照备份、快建新虚拟机

一.安装一个KVM服务器 目标: 本例要求准备一台 RHEL7.2 服务器,将其搭建为KVM平台,主要完成下列操作: 1> 关闭本机的SELinux保护.防火墙服务   2> 挂载RHEL7光盘到 /mnt/dvd,将其配置为本机YUM源(baseurl = file:///mnt/dvd)   3> 安装KVM相关包组,确保已启用 libvirtd 服务 方案: RHEL7中的虚拟化服务软件组: 1> 虚拟化平台 -- "Virtualization Platform&

本地虚拟机在ubuntu系统搭建nexus服务器

本地虚拟机在ubuntu系统上搭建nexus服务器 本地虚拟机在ubuntu系统上搭建nexus服务器所需软件: 虚拟机:VM或者Oracle VM VirtualBox 系统:ubuntu-14.04.5-server-amd64.iso JDK:1.8版本 nexus:nexus-2.14.3-02-bundle.tar.gz 注:由于本地系统为win7,所以的软件都是下载的本地win7系统中的,要为虚拟机ubuntu系统传输文件,选择了cuteftp软件. 虚拟机环境需要注意问题: 因为使

centos6.3 搭建KVM虚拟机

突然接到老总需求,需要在现有机房的服务器上边部署KVM,让内网测试机到达外网去测试.说实话有些头疼,因为我们的硬件资源实在是太缺了(小公司...),只有100G的剩余空间,让我在上边跑俩台虚拟机,还得应付时刻增涨的数据,这无疑让我很无语...hadoop可是在这台服务器的...所以,同学们懂了吧,那数据量,每天哗哗滴啊...废话少说,开始搭建~ 一.服务器硬件环境 服务器型号 DELL R710 CPU型号 Intel(R) Xeon(R) CPU  [email protected]*2 物理

自定义虚拟机安装(KVM)

自定义虚拟机安装(KVM) [真机操作]一.安装虚拟化平台安装必备软件:qemu-kvm //为 kvm 提供底层仿真支持libvirt-daemon //守护进程,管理虚拟机libvirt-client //用户端软件,提供客户端管理命令libvirt-daemon-driver-qemu //libvirtd 连接 qemu 的驱动可选功能:virt-install //系统安装工具virt-manager //图形管理工具virt-v2v //虚拟机迁移工具virt-p2v //物理机迁移

kvm批量创建虚拟机并自动设定ip和服务器名

1. 说明 kvm比起vmware来说最没有的功能就是用模板部署虚拟机的时候可以自定义ip地址,这对于大量创建vm的场景来说你需要一台台vnc的登录改动ip,显然是很累的,最近我就遇到这种场景(大型的cloudstack和openstack架构不说) 想到了一个方法,就是用一台关了机的虚拟机作为模板,复制它的xml文件可以改mac地址,这样就可以通过mac地址的唯一性而在模板虚拟机中加入一个脚本来根据一个写好在虚拟机中的列表文件来设定相应的ip地址和服务器名.这种方法要求以下步骤 1.模板虚拟机

虚拟机中使用centos7搭建ftp服务器

应用场景 本地windows作为客户端,虚拟机CentOS7作为服务器端,搭建FTP服务器,本地访问虚拟机实现文件的上传下载.如何在虚拟机安装centos7就不在赘述. 1.在centos7上安装vsftpd服务 1.安装vsftpd: yum install vsftpd -y 2.启动vsftpd: systemctl start vsftpd 3.设置开机启动:systemctl enable vsftpd 2.关闭防火墙 在虚拟机上使用没必要一个一个端口放行,直接关闭防火墙,一劳永逸 s

Mac下 Windows 7 虚拟机成功搭建SVN服务器后如何与Xcode建立联系,并上传原始工程的详细步骤

---恢复内容开始--- 本篇文章主要讲述Mac下 Windows 7 虚拟机成功搭建SVN服务器后如何与Xcode建立联系,并上传原始工程的详细步骤. 关于如何配置Mac下虚拟机可以参考: http://www.cnblogs.com/syc2016/articles/5151056.html 关于如何在Mac下Windows 7 虚拟机下配置SVN服务器可参考: http://www.cnblogs.com/syc2016/p/5151420.html 一.操作步骤 1.打开虚拟机上的Vis

Ubuntu虚拟机下搭建reviewboard服务器

Ubuntu虚拟机下安装reviewboard 参考许多资料以及实际操作后,写下如下较为完整的reviewboard安装过程. 1.安装virtualbox 2.新建64位Ubuntu系统,并安装Ubuntu系统,注意,不要勾选下载时更新选项,否则会安装失败. 3.安装Python setuptools sudo apt-get install python-setuptools 4.安装Python development headers sudo apt-get install python