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

转载于 搭建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

同步成功,+ 备胎 , ? 同步失败
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值