云计算day1---day2

1、什么是云计算?

云计算是一种按量付费的模式!云计算的底层是通过虚拟化技术来实现的! 

2、云计算的服务类型

2.1 IAAS 基础设施即服务 虚拟机 ecs openstack 
2.2 PAAS 平台即服务 php,java docker容器 
2.3 SAAS 软件即服务 企业邮箱服务 cdn服务 rds数据库 开发+运

3、为什么要用云计算

小公司:10台 20w+ idc 5w + 100M 10W, 10台云主机,前期投入小,扩展灵活,风险小
大公司:闲置服务器计算资源,虚拟机,出租(超卖计算)
64G 服务器 64台1G 320台1G
国企,银行

4、云计算基础KVM虚拟化

宿主机:内存4G+ 纯净的系统CentOS-7 

4.1、什么是虚拟化
虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。

4.2、虚拟化软件差别
虚拟化软件: 
qemu 软件纯模拟全虚拟化软件,特别慢!AIX,兼容性好! 
xen(半) 性能特别好,需要使用专门修改 之后的内核,兼容性差! redhat 5.5 xen kvm 
KVM(linux) 全虚拟机,它有硬件支持cpu,基于内核,而且不需要 使用专门的内核 centos6 kvm 性能较好,兼容较好

4.3、安装KVM虚拟化管理工具
#配置教师机源
echo  '192.168.12.201  mirrors.aliyun.com' >>/etc/hosts
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#安装KVM虚拟化管理工具
yum install libvirt virt-install qemu-kvm -y

#启动kvm虚拟化管理工具
systemctl start libvirtd.service
systemctl enable libvirtd.service
systemctl status libvirtd.service

#检查端口
netstat -luntp |grep qemu-kvm

4.4、安装一台KVM虚拟机
#官方centos7最小化镜像
wget https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

#教师机共享镜像(做实验用)
wget http://192.168.12.201/CentOS-7-x86_64-Minimal-1511.iso

#配置一台kvvm虚拟机
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-Minimal-1511.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

#参数含义:
--virt-type kvm                                 #虚拟化的类型(qemu)
--os-type=linux                                 #系统类型
--os-variant rhel7                              #系统版本
--name centos7                                  #虚拟机的名字 
--memory 1024                                   #虚拟机的内存
--vcpus 1                                       #虚拟cpu的核数
--disk /opt/centos2.raw,format=raw,size=8       #虚拟磁盘存放的位置raw,qcow2,单位GB
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso       #镜像的路径,不能放在没有权限的目录
--network network=default                       #使用默认NAT的网络
--graphics vnc,listen=0.0.0.0                   #将图形界面交给vnc的服务端来输出 端口5900
--noautoconsole

#注意:
建议虚拟机内存不要低于1024M,否则会特别慢!

4.5、通过vnc连接工具连接安装虚拟机
使用vnc工具安装虚拟机步骤

4.6、kvm日常管理命令
/etc/libvirt/qemu/                    #kvm虚拟机配置文件存放目录  

列表list(--all)
开机start
关机shutdown
拔电源关机destroy
重启reboot

导出配置dumpxml  例子:virsh dumpxml centos7 >centos7.xml
删除undefine  推荐:先destroy,在undefine
导入配置define   
修改配置edit(自带语法检查)

重命名domrename (低版本不支持)
挂起suspend
恢复resume
查询vnc端口号vncdisplay

语法示例:
virsh list                            #查看开启虚拟机列表
virsh --all                           #查看虚拟机所有列表
virsh start centos7                   #启动kvm虚拟机
vitsh rboot centos7                   #重启kvm虚拟机
virsh shutdown centos                 #关机命令
virsh destroy centos7                 #强制关机(建议不要使用)

virsh dumpxml centos7 > /centos7.xml  #导出配置文件
virsh destroy centos7                 #删除配置文件     
virsh define  centos7.xml             #导入配置文件
virsh edit    centos7                 #修改配置文件

virsh domrename centos7 web-blog      #重命名(先关机)
virsh suspend centos7                 #挂起
virsh resume centos7                  #恢复
virsh vncdisplay centos7              #显示端口号(:01)

virsh autostart centos7               #设置开机自启(随着libvirtd服务而启动)
virsh autostart --disable centos7     #取消开启自启

grubby --update-kernel=ALL --args="console=ttyS0,115200n8"  #修改内核参数,可以显示命令行控制台,必须重启(在kvm虚拟机执行此命令)
virsh console centos7                                       #进入到console控制台
ctrl + ]                                                    #退出控制台

4.7、kvm虚拟机虚拟磁盘格式转换和快照管理
raw:  裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输            总50G 占用2G
qcow2:cow  (copy on write)占用空间小,支持快照,性能比raw差一点,方便传输   总50G 占用2G

#创建raw磁盘格式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

#创建qcow2磁盘格式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/oldboy.qcow2,format=qcow2,size=10 --cdrom /data/CentOS-7.2-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

#利用磁盘文件恢复
virt-install --virt-type kvm --os-type=linux --os-variant rhel6 --name centos6.9 --memory 1024 --vcpus 1 --disk /opt/centos6.9.2.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

4.7.1磁盘工具常用命令
qemu-img 命令

参数
info      #查看一块虚拟磁盘
create    #创建一块虚拟磁盘
resize    #调整虚拟机磁盘大小
convert   #转换格式
-c        #压缩

qemu-img cretae -f qcow2 /data/oldboy.qcow2 1G              #创建qcow2磁盘(默认创建是raw格式)
qemu-img resize /data/oldboy.qcow2 +1G                      #增加1G(qcow2只能加不能减)
qemu-img info /data/centos2.raw                             #查看一块虚拟磁盘
qemu-img convert -f raw -O qcow2 oldboy.raw oldboy.qcow2    #将raw格式转换成qcow2

virsh edit centos2                                          #修改磁盘路径
virsh edit centos2                                          #修改配置文件的路径
<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/centos2.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>

qemu-img convert -c -f qcow2 -O qcow2 centos6.qcow2 /srv/centos6_2.qocw2       #压缩

4.7.2快照管理
raw不支持做快照,qcow2支持快照,并且快照就保存在qcow2的磁盘文件中 

virsh snapshot-create-as centos7 --name install_ok                   #创建快照(可以指定快照名字)
virsh snapshot-list centos7                                          #查看快照
virsh snapshot-revert centos7 --snapshotname install_ok              #还原快照
virsh snapshot-delete centos7 -snapshotname install_ok               #删除快照

4.8、kvm虚拟机克隆
完整克隆,必须关机

#自动克隆
virt-clone --auto-clone -o centos7 -n centos7_kelong
#手动克隆

链接克隆,必须关机,只能创建qcow2格式

a:生成虚拟机磁盘文件
qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2
b:生成虚拟机的配置文件
virsh dumpxml web01 >web03.xml
vim web03.xml
#修改虚拟机的名字
<name>web03</name>
#删除虚拟机uuid
<uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid>
#删除mac地址
<mac address='52:54:00:4e:5b:89'/>
#修改磁盘路径
<source file='/opt/web03.qcow2'/>
c:导入虚拟机并进行启动测试
virsh define web03.xml 
virsh start web03

4.8.1、写脚本的实现链接克隆
1:分析脚本的目的 由于没有自动化链接克隆的工具,于是有了此脚本,该脚本的主要功能,实现全自动链接克隆! 
脚本要求支持传入两个参数,一个老虚拟机名称和一个新虚拟机名称

2:任务拆解
a:生成虚拟机磁盘文件
qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2
b:生成虚拟机的配置文件
virsh dumpxml web01 >web03.xml
vim web03.xml
#修改虚拟机的名字
<name>web03</name>
#删除虚拟机uuid
<uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid>
#删除mac地址
<mac address='52:54:00:4e:5b:89'/>
#修改磁盘路径
<source file='/opt/web03.qcow2'/>
c:导入虚拟机并进行启动测试
virsh define web03.xml 
virsh start web03
===========================================================================================

版本1:不支持传参

#!/bin/bash

#a:生成虚拟机磁盘文件
qemu-img create -f qcow2 -b /data/web02.qcow2  /data/test.qcow2

#b:生成虚拟机的配置文件
virsh dumpxml web02 >/tmp/test.xml
#修改虚拟机的名字
sed -ri 's#(<name>)(.*)(</name>)#\1test\3#g' /tmp/test.xml
#删除虚拟机uuid
sed -i '/<uuid>/d' /tmp/test.xml
#删除mac地址
sed -i '/<mac address/d' /tmp/test.xml
#修改磁盘路径
sed -ri "s#(<source file=')(.*)('/>)#\1/data/test.qcow2\3#g" /tmp/test.xml

#c:导入虚拟机并进行启动测试
virsh define /tmp/test.xml
virsh start test
===========================================================================================

版本2: 支持传一个参数

#!/bin/bash
new_vm=$1
#a:生成虚拟机磁盘文件
qemu-img create -f qcow2 -b /data/web02.qcow2  /data/${new_vm}.qcow2

#b:生成虚拟机的配置文件
virsh dumpxml web02 >/tmp/${new_vm}.xml
#修改虚拟机的名字
sed -ri "s#(<name>)(.*)(</name>)#\1${new_vm}\3#g" /tmp/${new_vm}.xml
#删除虚拟机uuid
sed -i '/<uuid>/d' /tmp/${new_vm}.xml
#删除mac地址
sed -i '/<mac address/d' /tmp/${new_vm}.xml
#修改磁盘路径
sed -ri "s#(<source file=')(.*)('/>)#\1/data/${new_vm}.qcow2\3#g" /tmp/${new_vm}.xml

#c:导入虚拟机并进行启动测试
virsh define /tmp/${new_vm}.xml
virsh start ${new_vm}
===========================================================================================

版本3:支持传两个参数

#!/bin/bash
old_vm=$1
new_vm=$2
#a:生成虚拟机磁盘文件
old_disk=`virsh dumpxml $old_vm|grep "<source file"|awk -F"'" '{print $2}'`
disk_tmp=`dirname $old_disk`
qemu-img create -f qcow2 -b $old_disk  ${disk_tmp}/${new_vm}.qcow2

#b:生成虚拟机的配置文件
virsh dumpxml $old_vm >/tmp/${new_vm}.xml

#修改虚拟机的名字
sed -ri "s#(<name>)(.*)(</name>)#\1${new_vm}\3#g" /tmp/${new_vm}.xml
#删除虚拟机uuid
sed -i '/<uuid>/d' /tmp/${new_vm}.xml
#删除mac地址
sed -i '/<mac address/d' /tmp/${new_vm}.xml
#修改磁盘路径
sed -ri "s#(<source file=')(.*)('/>)#\1${disk_tmp}/${new_vm}.qcow2\3#g" /tmp/${new_vm}.xml

#c:导入虚拟机并进行启动测试
virsh define /tmp/${new_vm}.xml
virsh start ${new_vm}

4.9、kvm虚拟机桥接网络
默认的虚拟机网络是NAT模式,网段192.168.122.0/24

默认NAT模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

桥接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

1:创建桥接网卡
virsh iface-bridge eth0 br0

取消桥接网卡
virsh iface-unbridge br0

设置桥接模式步骤(适合新的虚拟机)
qemu-img create -f qcow2 -b centos2.qcow2 bridge.qcow2
virsh iface-bridge eth0 br0
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name bridge --memory 1024 --vcpus 1 --disk /data/bridge.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
virsh start bridge

5、作业

作业1:写一个shell,备份所有的虚拟机配置文件

vim /root/kvm1.sh
#!/bin/bash
for i in $(virsh  list --all|awk -F " +" 'NR>2&&NR<$NF{print $3}')
do $(virsh dumpxml $i > /data/"$i".xml.bak)
done

vim kvm2.sh 
#!/bin/bash
Path=/backup
[ -d $Path ]|| mkdir $Path -p
vm_name=`virsh list --all|awk -F " +" 'NR>2&&NR<$NF{print $3}'`
for i in $vm_name
do
    virsh dumpxml $i > $Path/"$i"-off.xml
done

作业2:安装一个centos6的kvm虚拟机,实现console命令行登录?
默认情况下,centos6没有swap分区进不了系统!qcow2格式,压缩,tar打包

#创建centos6虚拟机命令
virt-install --virt-type kvm --os-type=linux --os-variant rhel6 --name centos6 --memory 1024 --vcpus 1 --disk /opt/centos6.qcow2,format=qcow2,size=10 --cdrom /opt/CentOS-6.10-x86_64-minimal.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

#vnc连接安装centos6博客
https://www.osyunwei.com/archives/4322.html

#启动centos6
virsh start centos6 

#关闭防火墙,并设置为永久关闭(登录到centos6 执行)
ssh root@xxx.xxx.xxx.xxx
/etc/init.d/iptables stop
chkconfig iptables off

#关闭selinux,并永久关闭(登录到centos6 执行)
ssh root@xxx.xxx.xxx.xxx
sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0
getenforce

#停止swap分区(登录到centos6 执行)
ssh root@xxx.xxx.xxx.xxx
swapoff -a
vi /etc/fstab
注释掉swap分区
重启生效

#修改内核参数,实现console命令行登录(登录到centos6 执行)
ssh root@xxx.xxx.xxx.xxx
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
ctrl + d
virsh reboot  centos6
virsh console centos6                                        
ctrl + ]

#设置开机自启
virsh autostart centos6

#压缩
qemu-img convert -c -f qcow2 -O qcow2 /opt/centos6.qcow2 /srv/centos6_bak.qcow2 
cd /srv/
tar zcf /root/centos6_2.qocw2.tar.gz centos6_bak.qcow2
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容

  • 云计算介绍 云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池...
    泡菜爱上WaSabi阅读 1,678评论 0 2
  • 一、云计算基础 1、云计算概念 关于云计算的定义有很多种,百度百科的解释是这样的: 云计算(Cloud Compu...
    较劲儿阅读 4,087评论 1 9
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,754评论 0 5
  • 目录 一、了解虚拟化二、常见虚拟化软件三、虚拟化架构四、KVM介绍五、Centos7上安装KVM六、配置网卡七、创...
    XiaoMing丶阅读 6,382评论 0 0
  • 虚拟化技术概览KVM简介KVM的管理操作 一、虚拟化技术概览 (一)虚拟化技术类型: 主机虚拟化:xen, kvm...
    哈喽别样阅读 1,710评论 0 5