【云计算】创建kvm虚拟机即openstack平台教程
小标 2019-01-14 来源 : 阅读 774 评论 0

摘要:本文主要向大家介绍了【云计算】创建kvm虚拟机即openstack平台教程,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】创建kvm虚拟机即openstack平台教程,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。


准备环境 (真机)


禁用 selinux 配置文件 /etc/selinux/config


SELINUX=disabled


禁用 firewalld


systemctl stop firewalld //关闭防火墙,但当其他应用程序调用到防火墙时,会再次启动防火墙


systemctl (un)mask firewalld //注销防火墙服务,将服务的链接改为 /dev/null,其他程序无法调用防火墙。


1 yum 源的安装和配置(网络yum源)


光盘作为 yum 源 CentOS7-1708.iso (共9591包)


有 repodata 目录的才可以作为 yum 源


自定义 yum 源


创建一个 repodata


createrepo . (注意别丢了点“ . ”)


更新


createrepo --update .


2 dns 服务


3 时间服务器


#------------------------------------------------------------------------#


#################################################


虚拟化


实现程度:


----完全虚拟化:cpu也虚拟


----部分虚拟化: vm发出cpu指令----》kvm------》物理机cpu----》kvm-----》vm的cpu


----硬件辅助虚拟化:vm发出cpu指令----》kvm------》物理机cpu----》vm的cpu


三大组块: KVM /QEMU /LIBVIRTD


-KVM :linux内核模块,需要cpu支持 ---》 lsmod | grep kvm


-QEMU: 虚拟化仿真工具,完成对硬件的虚拟化


-Libvirt:虚拟化管理工具,提供客户端程序virsh,virt-install,virt-manager,virt-view


必备软件:


qemu-kvm 提供底层仿真支持


libvirt-daemon 守护进程


libvirt-client 客户端管理软件


libvirt-daemon-driver-qemu libvirtd 连接 qemu 的驱动


#######################################################################


virsh 命令


连接virt服务器:


virsh -c qemu:///system #管理本机vm ,-c qemu:///system 可缺省;c---》connect


virsh -c qemu+ssh://176.130.3.38/system #远程管理3.38上的vm


产生虚拟磁盘(raw格式和qcow2格式)


qemu-img create -f raw test.img 10G //划分出10G空间


qemu-img create -f qcow2 test.img 10G //cow写时复制,先不给10G,但最大只能给10G


依靠后端盘产生前端镜像


qemu-img create -f qcow2 -b 后端盘路径 前端盘路径 磁盘大小


其他选项:


-convert 转换磁盘格式


做快照:


-snapshot 管理磁盘快照


qemu-img snapshot -c 快照名 镜像名


qemu-img snapshot -c snapshot01 test.qcow2 //为镜像test.qcow2创建快照


qemu-img snapshot -c snapshot02 test.qcow2 //删除快照


qemu-img snapshot -l test.qcow2 //列出test.qcow2镜像的所有快照


注意:快照的存在依托于镜像,若镜像被删除了,则快照也不复存在。


交换机管理:


net-list //列出活跃状态的虚拟网桥


net-list --all //列出所有虚拟网桥


net-define vbr.xml //创建虚拟网桥


net-undefine vbr //删除虚拟网桥


net-start vbr //启动虚拟网桥


net-destory vbr //停止虚拟网桥


net-edit vbr //编辑网桥vbr的配置


net-autostart vbr //设置vbr为开机自启


net-autostart --disabled vbr //取消vbr的开机自启


虚拟机管理:


virsh nodeinfo //kvm服务器的信息


virsh dominfo 虚拟机名 //查看虚拟机信息


list //列出活跃状态的虚拟机


list --all //列出所有虚拟机


define //创建虚拟机


undefine //删除虚拟机


start|reboot|shutdown 虚拟机名 //开机|重起|关机


destory 虚拟机名 //强制关机


autostart 虚拟机名 //设置为开机自起


autostart --disable 虚拟机名 //取消开机自起


systemctl restart libvirtd //重起服务


################################################################


新建虚拟网桥,使连接该网桥的虚拟机可以上网。


1、编写配置文件


cat /etc/libvirt/qemu/network/vbr.xml


vbr //名字随意起


81092586-7b05-4d87-be79-204128ea5188 //删除此行,回自己生成


//使用nat模式,使虚拟机可以上网;若不需要上网,则移除此行配置。


//删除此行,会自己生成


//是虚拟网桥的ip,同时也是该网段的网关


//配置DHCP,调用dnsmasq提供dns、dhcp等功能


2、创建并启动虚拟网桥 vbr


virsh net-define vbr.xml


virsh net-start vbr


virsh net-autostart vbr //设置为开机自起


--------------------------------------------------------------------------------------------


补充:若交换机不需要上网,则xml配置内容如下:


private1


##################################################################


创建后端盘:


1、cd /var/lib/libvirt/images


2、 qemu-img create -f qcow2 test.img 8G


3、将光盘挂载到/var/ftp或者/var/www/html下


4、新建虚拟机,选择网络安装系统(ftp或者http),磁盘选择 新建的test.img。网络选择vbr,这样虚拟机可以上网。


################################################################################


初始化后端盘:


一、为虚拟机配置网络yum,配置签名检查;安装基本软件


vi /etc/yum.repos.d/centos7.repo


[centos]


name=centos


baseurl=//192.168.5.254/centos


gpgcheck=1


enabled=1


解决网络yum源的安全性:(OpenStack需要)


1、将配置文件中的gpgcheck改为1。


2、导入key:


rpm --import RPM-GPG-KEY-CentOS-7 //验证数字签名的ket可以在yum源的光盘中找到,也可去官方下载


使用 yum provides vim / ifconfig 查找需要安装的包。


yum list | grep bash -----》 bash-completion.noarch //安装tab键补全软件,要重起虚拟机生效


安装 lftp、lrzsz、bridge-utils


lftp sftp://176.130.3.57 -u root //lftp可以上传下载文件 get下载,put上传


二、空路由


禁用空路由:


cat /etc/sysconfig/network


NOZEROCONF="yes"


systemctl restart network


ip r s


三、禁用selinux、删除firewalld、删除NetworkManager


1、 修改 /etc/selinux/config


SELINUX=disabled


2、停止 firewalld NetworkManager


systemctl stop firewalld


systemctl stop NetworkManager


3 、卸载


yum remove -y NetworkManager-* firewalld-* python-firewall


四 、配置网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 //配置为自动获取ip


# Generated by dracut initrd


DEVICE="eth0" //要与文件名一致


ONBOOT="yes" //启动引导时加载


NM_CONTROLLED="no" //不支持NetworkManager管理


TYPE="Ethernet" // 可以为Ethernet 和 Bridge


BOOTPROTO="dhcp" //dhcp、none、static


#IPADDR="192.168.1.50"


#PREFIX="24"


#GATEWAY="192.168.1.254"


重启机器


#####################################################


五、console、扩展分区软件、fstab、语言、清理、undefine 虚拟机


添加console串口终端,使支持命令:virsh console 虚拟机名


1、修改配置文件cat /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"


2、重新生成grub.cfg


grub2-mkconfig -o /boot/grub2/grub.cfg


3、重起虚拟机,使用virsh console验证


4、将/etc/fstab 文件中的 UUID 手工修改成系统设备


blkid


/dev/vda1: UUID="2e7c1feb-4a86-4457-a34d-d1436d30c628" TYPE="xfs"


vim /etc/fstab


/dev/vda1 / xfs defaults 0 0


5、安装分区扩展软件


yum install -y cloud-utils-growpart


//在新生成的虚拟机上操作,若新生成的虚拟机的磁盘与原始盘大小不一致时才需要此操作


扩展磁盘分区空间(让 /dev/vda1 变大) /usr/bin/growpart /dev/vda 1


扩展文件系统识别空间(让 df -h 可使用空间变大)


/usr/sbin/xfs_growfs /


6、 关闭虚拟机后设置语言环境,并执行信息清理工作(在物理机删嗯执行)


设置语言为英文 LANG=en_US.UTF-8 //如此才能在虚拟机上执行 growpart 、xfs_growfs


virt-sysprep -d centos7.0


7、删除虚拟机的定义:


virsh undefine centos7.0


至此,前端盘完美生成---/var/lib/libvirt/imges/test.img


####################################################################


快建虚拟机


1、生成前端盘:


cd /var/lib/libvirt/imges/


qemu-img create -f qcow2 -b test.img node1.img


2、修改xml 配置文件


cat /etc/libvirt/qemu/node.xml


node //虚拟机名字


2097152 //虚拟机可使用的最大内存


2097152 //虚拟机启动时使用的内存


2 //cpu核数


hvm


//从硬盘引导启动


//电源配置


// 1*2=2----》与第5行一致。可删除,系统会自动计算


destroy


restart


restart


/usr/libexec/qemu-kvm


//复制上面内容,修改红色部分,可以给虚拟机添加磁盘,虚拟机关起再起后生效


//交换机名字


//复制上面内容,修改红色部分,可以给虚拟机添加网卡,虚拟机关起再起后生效


//console串口连接配置


3、注册并启动虚拟机:


virsh define /etc/libvirt/qemu/node.xml


virsh start node


//若新的虚拟机磁盘和后端盘的大小不一致,则执行以下操作(在新建虚拟机上执行):


扩展磁盘分区空间(让 /dev/vda1 变大) //在新生成的虚拟机上操作


/usr/bin/growpart /dev/vda 1


扩展文件系统识别空间(让 df -h 可使用空间变大)


/usr/sbin/xfs_growfs /


--------------------------------------------------------------------------------


补充:xml配置文件祥解:


– 保存 node 虚拟机配置文件


virsh dumpxml node >demo.xml


– 清除模板配置


virsh undefine node


– xml 模板


– 是注释的结尾


– xml 标签必须成对出现


– ... ...


centos7.0


8413f30a-c978-4796-a28f-8ba9fe74b759


2097152


2097152


– id=4 个性化设置 ,去掉


– uuid 去掉


– memory unit 虚拟机最大使用内存,可以手劢调整


– currentmemory 创建虚拟机使用内存


– cpu 设置,可以调整


2


– 资源设置,可以初除


... ...


– 系统配置及引导设备,丌需要修改


– 电源相关配置无需修改


... ...


– cpu配置,可以修改成使用真机cpu


– 时钟相关配置,可以初除


– 重启,关机,强制关闭对应命令


destroy


restart


destroy


– 内存及硬盘休眠相关设置,可以初除


... ...


– 仿真设备相关配置


... ...


– 其他配置


– 驱劢安全标签,可初除


... ...


仿真设备配置


– 总线地址,别名配置,都可以初除


– 硬盘配置,需要修改


/usr/libexec/qemu-kvm


– usb 相关设备配置,可以初除


仿真设备配置


– type='pci' pci总线设备,可初除


– type='virtio-serial' 串口设备需要保留串口终端


– type='network' 网络配置需要修改


– type='pty' 串口终端,需要保留


– type='unix' 虚拟机通讯控制接口


– type='spicevmc' 图形图像相关配置可以初除


– type='tablet' 数位板,可以初除


仿真设备配置


– type='mouse' 鼠标,保留


– type='keyboard' 键盘保留


– graphics、video 图形图像显卡相关配置,可以初除


– sound 声卡相关配置,可以初除


– redirdev 设备重定向,可以初除


– memballoon 内存气泡,可以劢态调整内存


###################################################################


guestmount


– 支持离线挂载 raw、qcow2 格式虚拟机磁盘


– 可以在虚拟机关机的情冴下,直接修改磁盘中的文档


– 方便对虚拟机定制、修复、脚本维护


---若修改原始盘,则前端盘要全部删除;若修改后端盘,则对原始盘没有影响


!!! 需要注意 SELinux 机制的影响


基本用法:


guestmount -a 虚拟机磁盘路径 -i /挂载点


chroot /mnt #将/mnt作为当前的假根,---->exit退出


######################################################


dns 服务(物理机做为服务器.实现转发即可)


yum install bind bind-chroot


编辑配置文件 named.conf


listen-on port 53 { 192.168.5.254; };


allow-query { any; };


forwarders { 202.106.196.115; }; //中国联通的NTP服务器


dnssec-enable no;


dnssec-validation no;


#####################################################################


时间服务器(真机做服务器,虚拟机做客户端)


yum install -y chrony


server:配置 /etc/chrony.conf


server ntp1.aliyun.com iburst


bindacqaddress 0.0.0.0


allow 0/0


client:配置 /etc/chrony.conf


server 192.168.1.254 iburst


检查状态(虚拟机上执行)


chronyc sources -v


* 同步成功,+ 备胎 ,  同步失败


#####################################################################


Jenkins 产品上线自动化管理 java+nginx


堡垒机


服务器购买:


svn


teamviewer安装:-------qt5


1、依赖包yum源:


//dl.fedoraproject.org/pub/epel/7/x86_64/


2、官网下载teamviewer


wget https://download.teamviewer.com/download/linux/teamviewer.x86_64.rpmml_count=&pid=-ml_count--ml_acc--ml_eg--lae_eg--lae_vid-


#################################################################################


OpenStack是什么:2010诞生


是一套IaaS解决方案


OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的项目


OpenStack是一个开源的云计算管理平台


以Apache许可证为授权


Openstack主要组件: 6个组建


Horizon


– 用于管理Openstack各种服务的、基于web的管理接口


– 通过图形界面实现创建用户、管理网络、启劢实例等操作


Keystone


– 为其他服务提供认证和授权的集中身份管理服务


– 也提供了集中的目录服务


– 支持多种身份认证模式,如果密码认证、令牌认证、以及AWS(亚马逊Web服务)登陆


– 为用户和其他服务提供了SSO认证服务


Neutron


-- 控制虚拟机之间的通信


– 一种软件定义网络服务


– 用于创建网络、子网、路由器、管理浮劢IP地址


– 可以实现虚拟交换机、虚拟路由器


– 可用于在项目中创建VPN


Cinder


– 为虚拟机管理存储卷的服务


– 为运行在Nova中的实例提供永久的块存储


– 可以通过快照迚行数据备份


– 经常应用在实例存储环境中,如果数据库文件


Nova


– 在节点上用于管理虚拟机的服务


– Nova是一个分布式的服务,能够不Keystone交互实现


认证,不Glance交互实现镜像管理


– Nova被设计成在标准硬件上能够迚行水平扩展


– 启劢实例时,如果有需要则下载镜像


Glance


– 扮演虚拟机镜像注册的角色


– 允许用户为直接存储拷贝服务器镜像


– 这些镜像可以用于新建虚拟机的模板


#################################################################


安装Openstack:(node上装,将主机名改为openstack)


1、 配置 openstack yum 源


加上系统盘 共 12 个yum源, 10731 包


注意:系统的光盘pgpcheck=1,Openstack的yum源的gpgcheck=0


# 环境检查


sestatus 检查 selinux 是否关闭了


rpm -qa |grep -P "firewalld|NetworkManager" 是否卸载了 NetworkManager 和 firewalld


chronyc sources -v 检查时间服务器是否可用


nslookup 检查 dns 服务器是否可用


yum repolist 检查包 10731 个


free -m 查看内存是否够 8G


lsblk 查看是否有 20G 的 vdb 设备


ifconfig 查看是否两块网卡,而且都能 ping 通


2、配置卷组,安装依赖软件包


yum install -y lvm2


pvcreate /dev/vdb


vgcreate cinder-volumes /dev/vdb


vgs


yum install -y qemu-kvm \


libvirt-daemon libvirt-client libvirt-daemon-driver-qemu \


python-setuptools //openstack的依赖包


3、安装 packstack,编辑 openstack 的应答文件


yum install -y openstack-packstack


创建安装 openstack 的应答文件


packstack --gen-answer-file=answer.ini //将会在当前目录下生成 answer.ini


vim应答文件 answer.ini


......


配置默认密码


11: CONFIG_DEFAULT_PASSWORD=Taren1


设置禁用 swift (对象存储) 模块


42: CONFIG_SWIFT_INSTALL=n


NTP 服务器地址


75: CONFIG_NTP_SERVERS=192.168.5.254


计算节点IP地址


98: CONFIG_COMPUTE_HOSTS=192.168.4.50


需要配置vxlan网络的 IP 地址


102: CONFIG_NETWORK_HOSTS=192.168.4.50


禁用自动创建 cinder-volumns 卷组


554: CONFIG_CINDER_VOLUMES_CREATE=n


设置网络支持协议


840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan


设置组播地址


876: CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5


设置虚拟交换机


910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex (物理交换机:虚拟交换机)


设置虚拟交换机所连接的物理网卡


921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0


设置隧道网络使用的网卡


936: CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1


禁用测试的DEMO


1179:CONFIG_PROVISION_DEMO=n


4、安装 openstack


packstack --answer-file=answer.ini


安装完成后会在当前目录下生成 文件 keystonerc_admin ,此文件有horizonweb页面登陆的用户名和密码


5、查看网卡配置文件:


cat /etc/sysconfig/network-scripts/ifcfg-br-ex 配置br-ex为外部OVS网桥


cat /etc/sysconfig/network-scripts/ifcfg-eth0 配置eth0为外部OVS网桥的端口,虚拟机和br-ex网桥通过此网卡与真实交换机连接


6、验证OVS配置


1. ovs-vsctl show


2. ip -o addr show


#######################################################################


Horizon配置


-----基于python的django web框架迚行开发


1、Horizon BUG 处理


cat /etc/httpd/conf.d/15-horizon_vhost.conf


.......


ServerAlias localhost


WSGIDaemonProcess apache group=apache processes=3


threads=10 user=apache


WSGIProcessGroup apache


WSGIApplicationGroup %{GLOBAL} <--- 这里添加


apachectl graceful //重新载入配置文件


2、firefox //192.168.5.50 登陆Horizon 管理页面


3、项目管理


项目:


---- 一组隔离的资源和对象。将这组资源提供给客户


用户:


---- 创建一个普通用户


################################################################################


命令行修改用户密码:


source keystonerc_admin


openstack user set --password 123456 user1


################################################################


安装额外计算节点:node2上面,将主机名改为nova01


1、准备环境:


estatus 检查 selinux 是否关闭了


rpm -qa |grep -P "firewalld|NetworkManager" 是否卸载了 NetworkManager 和 firewalld


chronyc sources -v 检查时间服务器是否可用


nslookup 检查 dns 服务器是否可用


yum repolist 检查包 10731 个


free -m 查看内存是否够 6G


ifconfig 查看是否两块网卡,而且都能 ping 通


2、安装依赖包:


yum install -y qemu-kvm \


libvirt-daemon libvirt-client libvirt-daemon-driver-qemu \


python-setuptools //openstack的依赖包


3、设置主机名:


vim /etc/hosts


192.168.5.50 openstack


192.168.5.60 nova01


拷贝一份给管理节点。


4、主节点openstack上修改应答文件 answer.ini


计算节点IP地址


98: CONFIG_COMPUTE_HOSTS=192.168.5.50,192.168.5.60 //添加节点


需要配置vxlan网络的 IP 地址


102: CONFIG_NETWORK_HOSTS=192.168.5.50,192.168.5.60 //添加节点


5、主节点openstack上重新部署:


cd /root


packstack --answer-file=answer.ini


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程