设为首页 收藏本站
查看: 1010|回复: 0

[经验分享] 云计算与openstack学习(二)

[复制链接]

尚未签到

发表于 2018-5-31 13:20:06 | 显示全部楼层 |阅读模式
OpenStack 涉及的知识领域极广
可以说涵盖了IT基础设施的所有范围。计算、存储、网络、虚拟化、高可用、安全、备。。。。。。无所不包。
OpenStack 是一个平台,不是一个具体的实施方案
OpenStack的各个组件都采用Driver的架构,支持各种具体的实现技术。比如 OpenStack 的存储服务Cinder只定义了上层抽象API,具体的实现交给下面的各种Driver,比如基于LVM的iSCSI Driver,EMC、IBM等商业存储产品的Driver,或者是开源的分布式存储软件,比如Ceph、GlusterFS的Driver。
正是因为这种架构上的灵活性,使得初学者在学习OpenStack的时候不会像学习其他具体软件产品那样容易上手。
OpenStack 本身是一个分布式系统
大多数搞 IT 的对分布式计算都不会太熟悉。直接冲进来会被 OpenStack 繁多的组件以及他们之间的交互方式搞得云里雾里。
         虽然 OpenStack 学习曲线比较陡峭,掌握起来难道较大,但 OpenStack 目前已经是 IaaS 云的事实标准,而且前途一片光明,对于我们搞 IT 的如果能啃下这个骨头,必定能大大提升自身的竞争力。

写给谁看

这套教程的目标读者包括:
OpenStack初学者
    学习 OpenStack 也是经历了一个艰辛曲折的过程。其主要原因在于没有找到一个系统教授OpenStack的教程,特别是针对初学者。大部分资料都比较分散,对于初学者无法有机地串起来。也正是因为这个原因,编写这样一套教程的想法,能够让初学者能够少走弯路,系统地学习、掌握和实践 OpenStack。
OpenStack 实施工程师
       把自己定位成一个能到一线攻城拔寨的实施工程师。所以这个教程也是针对 OpenStack 的实施人员,让他们能够通过学习真正掌握部署OpenStack 的知识、技能以及故障排查技巧。

包含哪些内容?

如下图,两大块:
DSC0000.jpg
预备知识
因为面向初学者,首先会有虚拟化和云计算的“预备知识”,会介绍 KVM,IaaS 等技术。
OpenStack核心
这是主要内容,包含OpenStack的架构和和各个核心组件。将会通过大量的案例、操作步骤、截图、日志来帮助大家理解 OpenStack 各组件是如何工作的。
其目标是让各位可以根据客户的需求进行配置和调整。

为啥叫《玩转 OpenStack》?
每次的内容只包3-6个知识点,这也是我把教程命名为《玩转 OpenStack》的原因。虽然是碎片化推送,但整个教程是系统、连贯和完整的,只是化整为零了。


虚拟化
DSC0001.jpg

OpenStack是云操作系统,要学习OpenStack,首先需要掌握一些虚拟化和云计算的相关知识。

虚拟化
虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享

物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)。
那么 Host 是如何将自己的硬件资源虚拟化,并提供给 Guest 使用的呢?
这个主要是通过一个叫做 Hypervisor 的程序实现的。
根据 Hypervisor 的实现方式和所处的位置,虚拟化又分为两种:
1型虚拟化和2型虚拟化
1型虚拟化
Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个

特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。



DSC0002.jpg
2型虚拟化
物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的
个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个
类型。
DSC0003.jpg
理论上讲:
1型虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比2型要高;
2型虚拟化因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌套意味着可以在KVM虚拟机
中再运行KVM。

KVM

下面重点介绍KVM这种2型虚拟化技术。
基本概念
在 x86 平台上最热门运用最广泛的虚拟化方案莫过于 KVM 了。OpenStack 对 KVM 支持得也最好,我
们的教程也理所当然选择 KVM 作为 实验环境的 Hypervisor。
KVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的。

KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。
那 IO 的虚拟化,比如存储和网络设备由谁实现呢?

这个就交给 Linux 内核和Qemu来实现。

说白了,作为一个 Hypervisor,KVM 本身只关注虚拟机调度和内存管理这两个方面。IO 外设的任务交
给 Linux 内核和 Qemu。
Libvirt
大家在网上看 KVM 相关文章的时候肯定经常会看到 Libvirt 这个东西。Libvirt 是啥?


简单说就是 KVM 的管理工具

其实,Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理 Xen,VirtualBox 等。

OpenStack 底层也使用 Libvirt,所以很有必要学习一下。

Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具 virsh
1. libvirtd是服务程序,接收和处理 API 请求;
2. API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt-manager,这是个图形化的 KVM 管理工具,后面我们也会介绍;
3. virsh 是我们经常要用的 KVM 命令行工具,后面会有使用的示例。
作为 KVM 和 OpenStack 的实施人员,virsh 和 virt-manager 是一定要会用的。
准备 KVM 实验环境
DSC0004.png


KVM 是 OpenStack 使用最广泛的 Hypervisor,本节介绍如何搭建 KVM 实验环境
安装 KVM
上一节说了,KVM 是 2 型虚拟化,是运行在操作系统之上的,所以我们先要装一个 Linux。Ubuntu、Redhat、CentOS 都可以,这里我们以 Ubuntu14.04 为例。
基本的 Ubuntu 操作系统装好之后,安装 KVM 需要的包
$ sudo apt-get install qemu-kvm qemu-system libvirt-bin virt-manager bridge-utils vlan
通过这些安装包我们顺便复习一下上一节介绍的 KVM 的相关知识。
1. qemu-kvm 和 qemu-system 是 KVM 和 QEMU 的核心包,提供 CPU,内存和 IO 虚拟化功能
2. libvirt-bin 就是 libvirt,用于管理 KVM 等 Hypervisor
3. virt-manager 是 KVM 图形化管理工具
4. bridge-utils 和 vlan,主要是网络虚拟化需要,KVM 网络虚拟化的实现是基于 linux-bridge 和 VLAN,后面我们会讨论。
Ubuntu 默认不安装图形界面,手工安装一下
sudo apt-get install xinit
sudo apt-get install gdms
udo apt-get install kubuntu-desktop
apt 默认会到官网上去下载安装包,速度很慢,我们可以使用国内的镜像站点。
配置/etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

然后执行下面命令更新安装包 index
# apt update
Redhat 和 CentOS 安装相对简单,安装过程中选择虚拟化和图形组件就可以了。
小窍门:Ubuntu 默认是不允许 root 通过 ssh 直接登录的,可以修改 /etc/ssh/sshd_config,设置
PermitRootLogin yes
然后重启 ssh 服务即可
# service ssh restartssh stop/waitingssh start/running, process 27639


在虚拟机上做实验
作为 2型虚拟化的 KVM,是支持虚拟化嵌套,这使得我们可以在虚拟机中实验 KVM。 比如我在 VMWare Workstation 中安装了一个 Ubuntu14.04 的虚拟机,为了能让 KVM 能创建 嵌套的虚机,要把 CPU 的虚拟化功能打开。如下图在 VMWare 中设置以下 CPU 的模式

DSC0005.jpg

DSC0006.jpg Ubuntu 启动后,用以下命令确认 CPU 支持虚拟化
# egrep -o '(vmx|svm)' /proc/cpuinfo# vmx
确认 Libvirtd 服务已经启动
# service libvirt-bin statuslibvirt-bin start/running, process 1478
  
启动第一个 KVM 虚机


本节演示如何使用 virt-manager 启动 KVM 虚机。
首先通过命令 virt-manager 启动图形界面
# virt-manager
DSC0007.jpg
点上面的图标创建虚机
DSC0008.jpg
给虚机命名为 kvm1,这里选择从哪里启动虚机。如果是安装新的 OS,可以选择第一项。如果已经有安装好的镜像文件,
选最后一项(如上图)
接下来需要告诉 virt-manager 镜像的位置。
DSC0009.jpg
点击 “Browser”
DSC00010.jpg
在我的系统中存放了一个 cirros-0.3.3-x86_64-disk.img 镜像文件 。cirros 是一个很小的 linux 镜像,非常适合测试用。大家可以到 http://download.cirros-cloud.net/ 下载,然后放到 /var/lib/libvirt/images/ 目录下,这是 KVM 默认查找镜像文件的地方。
DSC00011.jpg
为虚拟机分配 CPU 和内存
DSC00012.jpg
点击 “Forward”, 再确认一下信息,就可以启动虚机了。
DSC00013.jpg
virt-manager 会打开虚机 kvm1 的控制台窗口,可以看到启动情况

virt-manager 可以对虚机进行各种管理操作,界面直观友好,很容易上手。 同时我们也可以用命令 virsh 管理虚机,比如查看宿主机上的虚机
root@ubuntu:~# virsh list
Id    Name              State
--------------------------------
8     kvm1              running
至此,第一个虚机已经跑起来了,采用的都是默认设置,后面我们会逐步讨论有关虚
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-486056-1-1.html 上篇帖子: OpenStack镜像服务glance 下篇帖子: openstack Mitaka版本自动安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表