云计算概述与KVM虚拟化

guiyun affiliate

云计算是一种机遇,也是一种挑战


自动化运维平台


1. 传统数据中心面临的问题

- 资源利用率低

- 资源分配不合理

- 自动化能力较差


2. 云计算之前的模式

- IDC托管

- IDC租用

- 虚拟主机

- VPS


3. 云计算的概述

- 云计算是一种使用模式,非一种技术

- 云计算必须通过网络访问

- 云计算是一种弹性计算、按需付费、快速扩展


4. 云计算的特点

- 超大规模

- 虚拟化

- 高可靠性

- 通用性

- 高可扩展性

- 按需服务

- 极其廉价


4. 云计算的分类

- 公有云:青云、阿里云、腾讯云、亚马逊(最早)

- 优点

- 缺点

- 私有云

- 优点

- 缺点

- 混合云

- 优点

- 缺点

- 小结


5. 云计算的层次

- Iaas:基础设施即服务

- Paas:平台即服务

- Saas:软件即服务


云计算不等于虚拟化,但云计算需要使用虚拟化技术做支撑


云计算是一种模式,虚拟化是一种技术


虚拟化概述


硬件虚拟化与软件虚拟化


6. 虚拟化的分类

- 全虚拟化

- 半虚拟化


7. 虚拟化的应用

- 服务器虚拟化

- 桌面虚拟化

- 应用虚拟化


8. KVM的概述


9. QEMU的概述


内核空间和用户空间


CPU上下文切换


嵌套虚拟化


10. 安装KVM

[root@linux-node1 ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[root@linux-node1 ~]# uname -r

3.10.0-327.el7.x86_64

[root@linux-node1 ~]# uname -m

x86_64

[root@linux-node1 ~]# uname -n

linux-node1


[root@linux-node1 ~]# egrep "vmx|svm" /proc/cpuinfo

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt xsave avx hypervisor lahf_lm epb tpr_shadow vnmi ept vpid xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp

[root@linux-node1 ~]# yum -y install qemu-kvm libvirt virt-install

[root@linux-node1 ~]# rpm -qa qemu-kvm libvirt virt-install

libvirt-3.2.0-14.el7_4.5.x86_64  # 管理KVM虚拟机

qemu-kvm-1.5.3-141.el7_4.4.x86_64  # 用户空间管理工具

virt-install-1.4.1-7.el7.noarch  # 安装KVM虚拟机

[root@linux-node1 ~]# systemctl enable libvirtd

[root@linux-node1 ~]# systemctl start libvirtd

[root@linux-node1 ~]# systemctl status libvirtd

[root@linux-node1 ~]# ps -ef|grep "libvirtd"|grep -v "grep"

root      12202      1  2 14:34 ?        00:00:00 /usr/sbin/libvirtd

[root@linux-node1 ~]# ifconfig virbr0  # 虚拟网卡

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

        ether 52:54:00:bf:8b:92  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


创建虚拟磁盘

[root@linux-node1 ~]# qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G

Formatting '/opt/CentOS-7-x86_64.raw', fmt=raw size=5368709120

[root@linux-node1 ~]# ls -l /opt/CentOS-7-x86_64.raw

-rw-r--r-- 1 root root 10737418240 Jan  4 15:46 /opt/CentOS-7-x86_64.raw


创建系统镜像

[root@linux-node1 ~]# dd if=/dev/cdrom of=/tmp/CentOS-7-x86_64.iso

8456192+0 records in

8456192+0 records out

4329570304 bytes (4.3 GB) copied, 72.4885 s, 59.7 MB/s

[root@linux-node1 ~]# ls -l /tmp/CentOS-7-x86_64.iso

-rw-r--r-- 1 root root 4329570304 Jan  4 15:21 /tmp/CentOS-7-x86_64.iso


创建虚拟机

[root@linux-node1 ~]# virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 2048 --cdrom=/tmp/CentOS-7-x86_64.iso --disk path=/opt/CentOS-7-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole


Starting install...

Domain installation still in progress. You can reconnect to 

the console to complete the installation process.


管理虚拟机

[root@linux-node1 ~]# virsh list --all

 Id    Name                           State

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

 -     CentOS-7-x86_64                shut off


[root@linux-node1 ~]# virsh start CentOS-7-x86_64

Domain CentOS-7-x86_64 started


[root@linux-node1 ~]# virsh list --all      

 Id    Name                           State

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

 1     CentOS-7-x86_64                running


[root@linux-node1 ~]# ps -ef|grep "kvm"|grep -v "grep"

root        696      2  0 08:59 ?        00:00:00 [kvm-irqfd-clean]

qemu       2922      1 21 09:59 ?        00:01:11 /usr/libexec/qemu-kvm -name CentOS-7-x86_64 -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off,dump-guest-core=off -cpu Nehalem -m 2048 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 2d2a1ed9-0d89-4676-a81a-65d2fec0f40e -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-1-CentOS-7-x86_64/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x4.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x4.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/opt/CentOS-7-x86_64.raw,format=raw,if=none,id=drive-virtio-disk0 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive if=none,id=drive-ide0-0-0,readonly=on -device ide-cd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,fd=25,id=hostnet0,vhost=on,vhostfd=27 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:24:9c:9d,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain-1-CentOS-7-x86_64/org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -device usb-tablet,id=input0,bus=usb.0,port=1 -vnc 0.0.0.0:0 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on

root       2993      2  0 09:59 ?        00:00:00 [kvm-pit/2922]


Libvirt概述


[root@linux-node1 ~]# virsh shutdown CentOS-7-x86_64

Domain CentOS-7-x86_64 is being shutdown


[root@linux-node1 ~]# virsh list --all         

 Id    Name                           State

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

 -     CentOS-7-x86_64                shut off


[root@linux-node1 ~]# cd /etc/libvirt/qemu/

[root@linux-node1 qemu]# ls

CentOS-7-x86_64.xml  networks

[root@linux-node1 qemu]# virsh edit CentOS-7-x86_64


CPU热添加功能


内存热添加功能


创建虚拟机镜像


Openstack官方网站:https://www.openstack.org/


Openstack官方文档:https://docs.openstack.org/newton/zh_CN/install-guide-rdo/


Openstack是一个云平台管理项目,包括非常多的组件(项目)


Openstack项目组件

- Dashboard:Horizon

- Compute service:Nova

- Networking service:Neutron

- Object Storage service:Swift

- Block Storage service:Cinder

- Identity service:Keystone

- Image service:Glance


SOA框架架构:面向服务的架构


回调:A调用B,A完成任务后需要告诉B是否执行成功


消息队列


认证服务Keystone

- 用户与认证:用户权限与用户行为跟踪

- 服务目录:提供一个服务目录,包括所有的服务项和API的端点

- SOA框架


Openstack创建云主机方式

1. 通过Horizon Dashboard创建

2. 通过命令行创建

3. 通过Openstack API创建


Openstack创建云主机流程


Openstack优势

1. 架构清晰

2. 社区活跃

3. Python开发


Openstack端口小结

1. mysql:3306

2. rabbitmq:5672(Web:15672)

3. memcached:11211

4. keystone:admin:35357  internal:35357  public:50000

5. glance:glance-api:9292  glance-registry:9191

6. nova:8774

7. neutron:9696

8. cinder:8776









guiyun affiliate

作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:网站流量表示术语
下一篇:linux 运维工程师必备技能

发表评论