学到这里相信我们对云计算已经清楚的了解了,接下来我们开始讨论几套实际的云计算方案——私有云方案。
相比公共云,私有云不用考虑计费,安全性要求不高,同时云中应用比较统一,而且计算机网络环境比较好(更高的带宽、更低的延时、更稳定的链路)。接下来讲述的云计算方案都是基于 IaaS 的云计算方案,主要是远程桌面应用,而后台应用(如网站、邮件系统、数据库服务、ERP 后端等)则不在我们的讨论范围之内。
在设计云计算方案时,遵循一个重要原则,即“以最简化的架构满足用户的需要”,同时从以下几方面综合考虑。
1)接入的终端数
重点统计并行接入云端的终端数。
2)用户类型
主要是根据用户登录云端桌面使用的应用软件不同来分类。不同的应用软件消耗的计算资源的数目和类型是不同的,比如声音和视频播放软件要消耗大量的 CPU 资源,游戏、图像处理软件要消耗大量的内存和 CPU 资源,而办公软件消耗的资源就很少,记事本消耗的资源更是微乎其微。
根据经验,一个人经常使用的软件基本上固定在 5 个左右,比如“我”80% 的时间都在使用 Chrome 浏览器、QQ、Office 办公套件和 PuTTY。在公司内部,可以根据工种间接确定用户类型。相同类型的用户具备大致相同的特征:使用相同的应用软件,基本同时上、下班,具备大致相同的 IT 知识。
3)数据安全性
数据安全性的高低要求涉及用户桌面环境之间的隔离程度,而隔离程度的高低又决定了采用什么类型的虚拟桌面技术,不同的虚拟桌面技术最终决定了整个云端的体系架构和投资预算。
数据安全性肯定与用户类型有关,同时跟公司的制度有关。比如管理层、财务部、市场部都是要害部门,这些部门的数据安全很关键,所以相应工种的桌面可以采用裸机或者虚拟机,以实现最高的隔离度;相反,对于售后、生产等部门,可以采用多用户桌面,甚至是 vAPP,通过提高共享性来降低云端建设成本。
根据“我”十几年做 IT 方案的经验,为客户设计任何一套方案必须要考虑三个目标:功能目标、性能目标和产能目标。
功能目标就是要满足客户的功能要求,这是最低要求,比如搭建邮件系统必须具有收、发和阅读邮件的功能,否则就是搭建失败。
性能目标要求一个服务系统在预设的用户体验下能“顶住”预期的访问量,体现的是系统的抗压能力,通常通过压力测试来评价,比如邮件系统能满足 10 000 人正常使用。
而产能目标体现服务的安全性和可用性,通常用多少个“9”来衡量,比如邮件系统的可用性为3个“9”,表示一年内 99.9% 的时间内用户可以正常使用邮件系统。
在生产环境中使用的 IT 系统一般要求同时满足功能目标、性能目标和产能目标,否则会出问题。
比如一个邮件系统不能发邮件,那么肯定没有人会使用它。如果能收、发和阅读邮件,但是当多个人同时使用时速度很慢,那么还是没有人愿意使用它。如果功能和性能都满足,但是邮件内容很容易泄密或者隔三差五死机,那么这样的邮件系统仍然没有人愿意用。
一般网上和公开的文档资料里很难找到能同时满足功能目标、性能目标和产能目标的云计算方案,绝大多数文档就是列举一些配置命令,根本谈不上满足这三个目标。
下面以三个实际的云计算实施例子向读者展现实现一个具体的云计算并不可怕,三个例子覆盖小型、中型和大型云计算系统。提供的云计算方案重点考虑功能目标和性能目标,适当兼顾产能目标,因为产能目标涉及太多的第三方产品(如防火墙、入侵检测设备等)和方案,详细论述超出了本教程的范围。
由于各种技术发展很快,软件版本层出不穷,因此不能保证在将来的某个时间点,你再参照本节提供的方法依然有效。最好的途径是通过谷歌搜索相应技术和软件的官方网站,然后参考官方网站上的最新文档资料来设计和部署云计算。
最后我们给出三套云计算平台的解决方案:
根据云计算的定义,上面的“小型方案”和“中型方案”不能算作真正的云计算方案,因为没有用户自助功能。对于广大中小型企业日常办公来说,这种只采用虚拟化技术的方案是最简单、有效的解决方案。
小型云计算平台的搭建以及解决方案(超详细)
俗话说“学起来简单,做起来就难了”,所以下面我们学习一个小型方案的云计算实施例子。
需求分析
满足 60 个以内的终端用户(使用场合为办公、教学、多媒体阅览、门柜业务、家庭等),允许适度的不可用,要求满足若干个员工(如财务人员、老板)的高安全性。我们设计了单机和双机两种方案,大家可以根据自己的实际情况选择。
单机方案结构简单、成本低,建设和运维容易,适合对可用性要求不高的场合,如教学、家庭、小公司办公等;而双机能确保很高的可用性,但是架构稍微复杂,成本增加倒是不多。
系统设计
采用 Windows 的远程桌面服务,每个用户只能看到自己主目录中的资料。对于要求数据高度安全性的用户,给其分配虚拟机或者容器,以达到完全与他人隔离的目的。
1. 单机方案
为了确保数据的安全性,我们在物理上采用了四级存储子系统(见图 1)。
图 1 单机方案
首先用一块 120GB 的固态盘安装操作系统、应用程序和静态的配置文件,投入运行后开启写保护,这样能最大限度地保护系统,病毒、断电、误删文件等都不会破坏系统,从而确保机器总能正常运行。
其次采用两块 250GB 的固态盘做成 RAID1(通过硬阵列卡或者软阵列来设置),有效存储容量是 250GB,然后再与 2TB 的机械硬盘做成存储池。这个存储池用于存放虚拟内存页文件和用户经常使用的文档资料,同时 C:盘上的目录 C:\Users、C:\Temp 符号链接到这里。这个存储池拥有 2250GB 的容量,接近 SSD 的性能。
Windows Server 2012 R2 的存储池管理和ZFS文件系统都能优化 SSD 和 HDD 的混搭环境,使得经常使用的文件存放在 SSD 中,很少访问的文件存放在 HDD 中,这些都是自动完成的,无须用户手工干预。
按 60 个用户计算,每个用户可分配近 40GB 的硬盘空间,这对于日常办公产生的资料来说足够使用。由于允许过度分配,所以每个用户几乎可以得到 80GB 的空间。对用户启用磁盘配额限制。
最后使用一台 NAS 存储设备,容量为 4TB 以上,用于离线备份,也可以考虑做同步备份。安排一个后台备份任务,设定每 30 分钟增量备份一次。
采用两块千兆网卡,捆绑在一起,这样正常时两块网卡平摊网络流量,即使一块网卡损坏,也不会中断用户会话。
配置 32GB 的内存,至少一块 4 核的 CPU。本方案也支持少量的虚拟机桌面(4 台以内),每台虚拟机要分配 1.5GB 内存。
对于资金预算稍微宽松的公司来说,可以考虑增加一块 2TB 的机械硬盘,两块做成镜像,以增加存储容错能力;相反,预算紧张的企业可以考虑只买一块 250GB 的固态盘,及时做好数据备份,以增加数据的安全性。
2. 双机方案
与单机方案一样,双机方案仍然采用四级存储子系统(见图 2),只不过采用一块 250GB 的固态盘,再与机械硬盘做成混搭存储池,然后两台计算机的硬盘互为镜像,做成文件系统级同步。存储空间划分为三个分区,分别命名如下。
1)配置盘D
存放虚拟内存页文件,临时目录 C:\Temp 符号链接到这里,要经常修改又不用同步到其他计算机的文件;存储虚拟机配置文件和虚拟机硬盘文件。
2)用户主目录盘 E
C:\Users 符号链接到这里,用户只能进入各自的目录并在自己的目录里创建更多的目录和文件,系统管理员无权进入用户目录。
3)共享文档资料盘 F
存放公司的共享文档,只有管理员有权利写,其他用户只能读。
图 2 双机方案
E 分区、F 分区和 D 分区上的虚拟机文件目录要同步到另一台计算机,C:、D:盘对普通用户隐藏,普通用户在 E:盘上的配额为 40GB。
配置 32GB 的内存,至少一块 4 核的 CPU;128GB 内存+2 块 4 核 CPU 能应付达 100 个终端用户。本方案也支持少量的虚拟机桌面(4 台以内),每台虚拟机要分配 1.5GB 内存。当然,物理机的配置足够高的话,还可以支持更多的虚拟机。但不管怎么讲,仍以多用户桌面为主。
域控对于本方案至关重要,我们采用工控凌动小主板来组建方案中的域控器。
硬件选型
组成个人计算机的四大部件分别是 CPU、主板、内存和电源,它们关系到整台计算机的综合性能和稳定性。但是作为云端服务器,硬盘也至关重要,尤其是硬盘的 IOPS 指标。在下面提供的几个配单中,我们充分考虑了各个配件的性能搭配和整机可靠性。
1. 高档配置
高档配置如表 1 所示。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
CPU | 英特尔至强 E5-2620V2 | 2800 | |
主板 | 华硕 Z9PE-D16C/2L | 支持双路 | 3300 |
内存 | 4 根金士顿 DDR3 1600 8G RECC 服务器内存 | 32GB 总容量 | 3000 |
固态盘(系统) | 英特尔(Intel) S3 500 系列 SATA 6Gbit/s固态硬盘 2.5 英寸 120G | 980 | |
固态盘(数据) | 2 英特尔(Intel)S3500 系列 SATA 6Gbit/s 固态硬盘2.5 英寸 240G | 3800 | |
电源 | 海韵(Seasonic)额定 660W P-660 电源 | 80PLUS 白金牌/全模组/支持双CPU/支持SLT/支持背线 | 900 |
硬盘 | 1 块西部数据 XE 系列 600G SAS6Gbit/s 10000 转 32M 2.5英寸企业级硬盘(WD6001BKHG) | 1700 | |
NAS | 西部数据(WD)My Cloud 3.5 英寸个人云存储 4TB(WDBCTL0040HWT-SESN) | 1600 | |
工控小主板* | Intel DN2800MT | 再加 2GB内存、32GBSSD | 1000 |
合计:19380 |
- 在单机方案中,不要工控小主板;在双机方案中,只采用一块 250GB 的固态盘。
- 配件可在美国、日本、中国台湾的亚马逊上购买,整体价格大概便宜 30% 左右。
全部采用一线品牌的配件能保证最大的稳定性,本方案基本上就是服务器的配件,也能达到服务器的高可靠性。4 核英特尔至强 CPU 相比同类型的 AMD CPU,价格要贵很多,但是能提供更大的固态盘带宽和更高的内存通信性能。
华硕的这块服务器主板支持双路至强,为以后纵向扩容预留了空间。内存具备自动纠错功能(ECC),每根内存虽然比没有纠错功能的内存要贵 200 多元,但是大大提高了稳定性,避免了因内存导致的蓝屏、死机等问题,所以还是比较划算的。
固态盘采用英特尔产品,因为这个牌子的固态盘稳定性早已被业界认同,同时 IOPS 能达到 4000 以上,只是价格有点贵。
海韵(Seasonic)额定 660W 的电源代表业界最可靠的电源,对于 300W 左右的负载,这款电源的电源转换效率最佳,600W 的额定功率也为以后扩充配置预留了足够的余量。
600GB 的企业级万转 SAS 机械硬盘就是为 7×24 小时运行设计的,机械硬盘 IOPS 远远落后于固态盘,但是比 SATA 机械硬盘要先进,大容量、低价格是其两大优势。
Intel DN2800MT 工控小主板无风扇静音运行,用它来组建域控能保证万无一失。
配单中,主机配件不包括 NAS 和工控小主板,而且 4 核 CPU 和固态盘还有进一步降价的空间,预计一年后整机价格应该还可以下降千元以上。
2. 中档配置
中档配置如表 2 所示。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
CPU | Intel 酷睿 4 核 i7-4770k | 2300 | |
主板 | 华硕 SABERTOOTH Z87 主板 | 1800 | |
内存 | 4 根金士顿(Kingston)骇客神条 Blu 系列 DDR3 1600 8GB | 1800 | |
固态盘(系统) | 英特尔(Intel)S3500 系列 SATA 6Gbit/s 固态硬盘 2.5 英寸 120G | 980 | |
固态盘(数据) | 2 块英特尔(Intel)S3500系列 SATA 6Gbit/s固态硬盘2.5英寸 240G | 3800 | |
电源 | 海韵(Seasonic)额定 660W P-660 电源 | 80PLUS 白金牌/全模组/支持双 CPU/支持 SLI/支持背线 | 900 |
硬盘 | 1 块西部数据(WD)SE 系列 2TB 7200 转 64M SATA3 企业级 硬盘(WD2000F9YZ) | 1000 | |
NAS | 西部数据(WD)My Cloud 3.5 英寸个人云存储4TB(WDBCTL0040HWT-SESN) | 1600 | |
工控小主板* | Intel DN2800MT 再加 2GB 内存、32GBSSD | 1000 | |
合计:14280 |
这是台式机的配置,稳定性不如服务器。
3. 低档配置
低档配置如表 3 所示。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
CPU | Intel 酷睿 4 核 i7-4770k | 2300 | |
主板 | 华硕 Z87-A 主板 | 870 | |
内存 | 4 根金士顿(Kingston)骇客神条 Blu 系列 DDR3 1600 8GB | 1800 | |
固态盘(系统) | 英特尔(Intel)S3500 系列 SATA 6Gbit/s 固态硬盘 2.5 英寸 120G | 980 | |
固态盘(数据) | 英特尔(Intel)S3500系列 SATA 6Gbit/s固态硬盘2.5英寸 240G | 1900 | |
电源 | 安钛克(Antee)额定 450W TP-450 电源 | 12cm 大风扇/80PLUS 金牌 | 500 |
硬盘 | 1 块西部数据(WD)RE 系列 1TB 7200 转 64M SATA3 企业级硬盘(WD1003FBYZ) | 600 | |
NAS | 西部数据(WD)My Cloud 3.5 英寸个人云存储2TB(WDBCTL0040HWT-SESN) | 1000 | |
工控小主板* | Intel DN2800MT 再加 2GB 内存、32GBSSD | 1000 | |
合计:10950 |
相比高档配置,本款配置在性能方面略微降低了一些,在可靠性方面降低得比较多。对于小微型成本敏感的公司来说,可以考虑采用本配单。
4. 家庭虚拟化主机
对于家庭虚拟化主机,还可以进一步降低成本,表 4 所示为一个参考配单。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
CPU | Intel 酷睿 4 核 i5-4430 | 1200 | |
主板 | 技嘉 B85M-D3H 主板 | 550 | |
内存 | 2 根金士顿(Kingston)骇客神条 Genesis 系列 DDR3 1600 4GB | 500 | |
固态盘(数据) | 1 块英特尔(Intel)S3500系列 SATA 6Gbit/s 固态硬盘 2.5英寸 240G | 1900 | |
电源 | 安钛克(Antee)额定 450W TP-450 电源 | 12cm 大风扇/80PLUS 金牌 | 500 |
硬盘 | 1 块西部数据(WD)RE 系列 1TB 7200 转 64M SATA3 企业级硬盘(WD1003FBYZ) | 600 | |
移动硬盘 | 西部数据 Elements 新元素系列 2.5 英寸 USB3.0 移动硬盘 2TB | 700 | |
合计:5950 |
本配置能轻松带动 6 个以内的云终端。
终端选型:微算技术有限公司设计的云终端。
软件选型
小型私有办公云目前还是以微软桌面为主,用户习惯了使用微软的那套软件,等将来操作系统与硬件捆绑时,到底使用什么操作系统就无所谓了,毕竟我们在乎的是应用软件,就像今天的 iPad,不用安装操作系统,直接在线安装需要的应用软件即可。软件选型如表 5 所示。
软件类型 | 软件选型 | 备注 |
---|---|---|
操作系统 | Windows Server 2012 R2 | 开启多用户功能 |
办公套件 | Microsoft Office 2013 | 也可以采用金山公司的 WPS,与微软的办公软件兼容 |
上网浏览器 | Google Chrome | 或者使用 Firefox,建议不用微软的 IE |
即时通信 | QQ、Skype | |
平面图形处理工具 | Photoshop 或 Fireworks | Fireworks是简化版,易学、易用 |
矢量图形处理工具 | 微软的Visio 2013 | |
3D 图形工具 | Solidworks | 易学、易用 |
PDF 阅读器 | Adobe Reader | |
输入法 | 搜狗拼音输人法、极品五笔 | |
音乐播放器 | 酷狗或 QQ 音乐 | |
视频播放器 | 暴风影音 | |
解/压缩工具 | Winrar | |
下载工具 | 迅雷 | |
项目管理工具 | 微软的 Project 2013 | |
知识管理工具 | 微软的 OneNote 2013 | 结合 OneDrive 网盘,可以实现资料随地访问 |
广播教学软件 | NetSupport School | 针对培训或者需要监控用户桌面的方案 |
容器 | Windows Server Container 或 Hyper-V Container |
实现 Windows Server 2012 R2 支持多用户桌面的方法有两种:第一种是开启远程桌面服务角色,并购买相应数量的许可证;第二种是打上多用户补丁,这个方法虽然成本低,但是存在法律风险。如果需要创建虚拟机,则还需要启用操作系统的 Hyper-V 角色。
NetSupport School 是针对教育培训机构的广播教学软件,当然也适合监控员工桌面的企业私有办公云,使用它之后,公司老板可以实时监控其他员工的桌面任务。
部署与运维
1. 单机部署
1)安装和配置操作系统。
把机器硬件装配好,并设置好硬件阵列,把两块固态盘做成 RAID 1。如果有两块机械硬盘,也做成 RAID 1。
安装 Windows Server 2012 R2 到 120GB 的 SSD 上并打上最新的补丁;额外安装这些角色和功能:数据重复删除、桌面体验、存储服务、Hyper-V、用户界面与基础结构、Windows Server Backup。
命名好机器名称;把两块网卡捆绑在一起(服务器管理器→本地服务器→单击NIC组合旁边的“已禁用”→……)。
创建固态盘和机械硬盘混合的存储池(服务器管理器→文件和存储服务→存储池→新建存储池→……),再在存储池上创建虚拟磁盘,可以考虑为这些类别创建专门的虚拟盘:页文件、C:\Temp 目录、用户桌面环境、公司内的共享资料。
对存放用户数据和共享数据的磁盘启用重复数据删除,页文件指定常驻 SSD 中(采用命令 Set-FileStorageTier-FilePath<PATH>-DesiredStorageTier$tier_ssd 完成,采用命令 Clear-FileStorageTier-FilePath <PATH>解除)。把 Windows Server 2012 R2 优化为桌面应用。
2)用户、配额和远程桌面。
创建 60 个用户并加入“Remote Desktop Users”组和“Users”组,可以采用命令 net user、net localgroup、wmic useraccount 等写成批命令来自动化完成创建用户的任务。
C:盘上的目录 C:\Users 转向到其他磁盘,并针对用户启用磁盘配额。
对操作系统启用远程桌面并打上多用户补丁或者安装远程桌面服务功能。
3)安装并配置应用软件。
4)创建若干台虚拟机(这一步可选)。
5)善后处理。
- 打上全部软件的最新补丁。
- 隐藏无须让用户知晓的分区。
- 配置好防火墙。
- 设置好备份计划。
- 对整台服务器做一次完整备份(操作:服务器管理器→工具→ Windows Server Backup:系统备份→一次性自定义备份→勾选“裸机恢复”项,其他关联项自动被选中)。
知识小贴士
- 裸机恢复:当整个系统损坏(含硬盘损坏)时采用裸机恢复,用启动光盘启动→修复计算机→疑难解答→系统映像恢复,然后根据提示操作即可。
- 启动系统盘写保护(采用 UWF 或者 Enhanced-Write-Filter 技术)。
2. 双机部署
双机部署与单机部署相比,多了机器间的同步配置、域控搭建等步骤。
1)安装域控。
在图 2 中的域控上安装 Windows Server 2012 R2 操作系统,取机器名 BaseDS,网卡设为固定 IP 地址,然后配置 AD DS,域名为 weisuan.com。创建 workmen 全局安全组,创建用户 workmanN(N=1~60),都加入 workmen 组。两台服务器分别命名为 Node1 和 Node2,都加入域。域控上的 workmen 组加入两台服务器的本地组“Remote Desktop Users”中。
2)配置“DFS复制”(只在 Node1 上操作)。
完成两台计算机间数据文件的双向同步,创建一个复制组,加入需要同步的目录。注意,对于 E:\Users 目录,子目录 TEMP、Administrator、Administrator.WEISUAN 不同步。只针对 E:、F:两个盘做同步策略,D:盘的虚拟机文件改动频繁,建议一天或半天同步一次,其他两个盘做成实时同步。
3)配置“网络负载平衡”(只在 Node1 上操作)。
在服务器管理器中,单击“工具→网络负载平衡管理器”。新建集群,加入 Node1 和 Node2 两台计算机,选择直连的网卡,属性有:名称=remotedesktop,集群操作模式=单播,端口规则=端口范围 3389—3389,筛选模式=多个主机,相关性=单一。
知识小贴士
单播——参与集群的全部机器的网卡配成相同Mac地址,如果机器只有一块网卡,那么这些机器之间无法通信,只能作为一个整体与外界通信。
多播——网卡的Mac地址各不相同,因此集群中的机器可以互相通信,对外时需要支持多播的路由器配合。
当机器有多块网卡时,建议选择单播。反之,选择多播。“单一”相关性,来自相同源地址的会话路由到相同的服务器上;“无”相关性,以会话为单位平均路由到各个服务器上;“网络”相关性,来自相同源地址的会话被路由到一个网段内的服务器上。
中型云计算平台的搭建以及解决方案(超详细)
本节我们来讲如何搭建中型的云计算解决方案,文中的软件选型和部署运维与搭建小型方案时大致相同,在文中不过多赘述了。大家可先阅读教程《如何搭建一个小型的云计算平台》。
需求分析
能满足 100~500 个用户日常办公的需要,每个用户分配一个账号,从而使其能在任何一台云终端上登录云端桌面,实现公司内部的移动办公。应用场所包括大型的阅览室、培训教室、中型公司、大型门柜业务等。
系统设计
我们继续在前面双机方案的基础上做纵向和横向扩展:首先,在纵向上提高单台机器的硬件配置,从而提高每台计算机的性能。
其次,在横向上添加更多的机器,比如每台机器能服务 80 个用户,那么 5 台机器就能服务 400 个用户。继续采用分布式存储并定期同步的策略,不引入集中存储设备,这样一来可以降低成本,二来可以简化系统架构。
对 3389 端口做负载均衡处理。中型方案的系统框图如图 1 所示。
图 1 中型方案系统框图
为了增加可靠性,我们增加了一台域控,同时为了提高容量和磁盘性能,采用两块高速机械硬盘做成 RAID 0,并选购更好的固态盘。5 台机器的数据存储做成实时同步,用户登录时通过负载均衡技术被平摊到每台机器上,当某台机器故障时,该台机器上的用户被重新分配到其他机器上。
仍然采用 Windows Server 2012 R2 操作系统,利用操作系统自带的集群、分布式文件系统(DFS)、Hyper-V、备份等组件。
硬件选型
单台计算机的配置尽量参考表 1,可以自己组装,也可以购买类似配置的品牌计算机,但是目前还没有 SSD+HDD 混搭存储的商用计算机。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
CPU | 英特尔至强E5-2620V2 | 2800 | |
主板 | 华硕 Z9PE-D16C/2L | 支持双路,最大 512GB内存 | 3300 |
内存 | 4 根金士顿 DDR3 1600 16G RECC | 64GB总容量 | 5000 |
固态盘(系统) | 英特尔(Intel) S3500 系列 SATA 6Gbit/s 固态硬盘2.5英寸120G | 980 | |
固态盘(数据) | OCZ 25SAT3-512G | SATA 6.0 GBit/s,100K IOPS | 4000 |
电源 | 海韵(Seasonic )额定 660W P-660 电源 80PLUS 白金牌/全模组/支持双 CPU/支持 SLI/支持背线 | 900 | |
硬盘 | 2 块西部数据(WD)迅猛龙 1TB 企业级硬盘(WD1000DHTZ) | SATA6Gbit/s 10000 转 64M | 3000 |
NAS | 西部数据(WD) My Cloud EX4 系列 NAS 网络存储云存储 8T WDBWWD0080KBK-SESN | 6000 | |
工控小主板* | 2 块 Intel DN2800MT | 再加 2GB 内存、32GBSSD | 2000 |
合计:27980 |
不计 NAS 和工控小主板,一台机器的价格在 2 万元以内;如果直接从美国进货,则每台机器可控制在 1.5 万元以内;如果购买品牌服务器,要达到相同的性能,价格在 3 万元以上。本配置单支持以后做纵向扩容:增加一块 CPU、增加内存、增加硬盘。
软件选型
软件选型与前面的“小型方案”相同。
部署与运维
与前面“小型方案”的“双机部署”大致相同,不过在配置 DFS 同步和集群时涉及 5 个节点。
大型云计算平台的搭建以及解决方案(超详细)
本节主要教大家如何搭建一个大型的云计算平台,读完之后你会对云计算有一个更加清晰的认识。
需求分析
能接入 500 台以上的云终端,可以满足大型公司内各类员工的办公需求。公司员工用各自的账号能在公司内部的任何云终端上登录自己的远程桌面,实现公司内部移动办公;同时,要求出差在外的员工也能安全访问远程桌面,公司安全管理部门能监控到外发的电子文档资料。对于一家大型公司来说,云终端用户的基本分类如表 1 所示。
序号 | 用户类型 | 特征 | 常用操作 |
---|---|---|---|
1 | 访客 | 非公司员工在公司内的公共场合,如会场、餐厅、休息室、大堂、接待室等使用计算机 | 查询、上网、娱乐等 |
2 | 合作伙伴 | 授权访问、外部接人 | 与特定的接口人交换信息等 |
3 | 普通文员 | 采用一般的轻量级的软件处理日常文字工作、生产调度等,涉及的信息重要级别低 | 文字处理、收发邮件、上网、音视频娱乐、ERP 等 |
4 | 重要文员 | 涉及的信息安全级别高,如财务会计、人事档案、项目管理、工资福利等,要求用户间的隔离效果好、可用性高、数据安全性高等。 | 业务软件操作、文件处理、收发邮件、上网、音视频娱乐、ERP 等。 |
5 | 研发人员 | 信息安全是关键,项目团队与外围必须绝对隔离,消耗较多的计算资源 | 研发工具、文件处理、收发邮件、上网、音视频娱乐等。 |
6 | 领导 | 使用轻量级的软件,但是信息安全级别最高,应用可用性要求最高 | 文字处理、审批、 收发邮件、上网、音视频娱乐、ERP 等。 |
7 | 业务人员 | 市场部、采购部、安全部门的员工,他们的共性屎要求信息绝对安全,可用性高。 | 业务软件操作、文字处理、 收发邮件、上网、音视频娱乐、ERP 等。 |
8 | IT运维人员 | 他们除运维外,还要对新技术、新方案做测试和评估 | 运维软操作、测试评估、文字处理、收发邮件、上网、音视频娱乐等。 |
系统设计
1. 技术背景
根据用户在云端共享层次(参见《IT系统组成》教程)的不同,有如下几种实现技术。
1)共享信息和技术(Ⅰ 型)
这是最轻量级的,所有的人都用同一个账户登录,进入同一个用户环境,可运行同一个程序集中的程序,每个人的数据集对其他人可见。用户一退出,其计算痕迹全部被删除。本方法特别适用于公共场所,如图书馆的多媒体阅览室、教育培训机构的计算机室、智能会议室、查询终端等。
2)独占信息、共享技术(Ⅱ 型)
这是较轻量级的,即每个用户独占数据集和少量应用软件,共享硬件、系统软件(如操作系统)和大部分应用软件。这就是多用户系统,Linux 操作系统是一个典型的多用户系统,Windows 的远程桌面服务也是多用户系统。
多用户系统又存在以下两种实现方法:
- RemoteApp 方式,即在本地创建快捷方式,指到云端的程序(程序安装在云端并在云端运行)。
- 远程桌面方式,用户直接登录到云端并进入自己的用户环境。
这两种方法都要求事先在云端创建账号,并配置用户环境。在第一种方法中,当用户双击快捷方式时,会自动登录云端(账号和密码事先配置好),然后在云端计算。第二种方法是人工登录到云端桌面。
RemoteApp 方式可以实现“单一入口、分工计算”的目的,即若干台云端服务器可以分工计算,比如有的服务器运行办公软件,有的服务器运行多媒体软件,有的服务器运行游戏软件,有的服务器专门用于科学计算,等等,然后把这些程序都整合到用户的桌面上来。
为了实现这种“单一入口、分工计算”的目的,必须采用单点登录(用户集中认证)和家目录漫游。用户的桌面可以在本地,也可以在云端(专门用一台服务器存放桌面),桌面上的快捷方式可以由用户自己创建(但规定了可选择的程序集),也可以由系统管理员推送过来。当用户数达到几百、上千甚至上万时,采用 RemoteApp 方式较合适。
3)独占信息和应用软件,共享硬件和操作系统(Ⅲ 型)
这是基于操作系统层面的虚拟机,也称为“容器”(常说的 VPS,即虚拟私有服务器)。每个 VPS 都拥有自己的 IP、根文件系统、用户认证系统,以及应用软件集,但是同一台物理机器上的 VPS 共享底层的操作系统内核,用户使用 VPS 就像使用一台单独的物理机器(但是涉及操作系统内核修改的操作是禁止的,比如我们经常会在 Linux 下重构内核,这在 VPS 中是不允许的)。
从整台物理机来看,由于内存中只有一个操作系统在运行,所以与全虚拟机相比,物理机能输出更大的有效计算能力,也能承载更多的“容器”,容器数量几乎多出一倍。另外,与上面两种方法相比,VPS 能达到更好的数据隔离效果。本技术方案特别适合个性化用户和要求数据隔离良好的应用,绝大多数 VPS 提供商都会采用。
4)虚拟机(Ⅳ 型)
虚拟机共享硬件和 Hypervisor 层(有的是操作系统,有的是虚拟层),独占操作系统、应用软件和信息。
与 Ⅲ 型相比,虚拟机具备更佳的隔离效果,用户透明度更高,远程用户几乎不能分辨自己使用的到底是虚拟机还是物理机,在物理机上能进行的操作在虚拟机里都能进行。但是由于一台物理机同时运行多个操作系统,所以资源浪费更大。对于一些要做深度开发的技术工程师(如程序开发员),建议给他们创建虚拟机,允许他们配置虚拟机硬件、安装操作系统、安装开发工具等。
5)物理机(Ⅴ 型)
这是最重量级的,即独占网络层以上的全部信息和技术,直接给用户分配物理机。用户通过远程管理卡连接到物理机,从而可以开关机、配置 BIOS 参数、安装操作系统、配置网络参数、安装应用软件等。物理机的隔离效果最佳,用户个人体验最佳,但是成本也最高。对于一个单位组织的IT工程师,建议给他们分配物理机。
2. 系统拓扑
根据公司用户分类和 IT 系统层次的不同,可制成表 2。
序号 | 用户类型 | 终端数 | 桌面类型 | 备注 | 服务器 |
---|---|---|---|---|---|
1 | 访客 | 100 | 先 Ⅳ 型后Ⅰ型 | 单独使用两台服务器,并与其他服务器在网络上隔离 | 2 台 |
2 | 合作伙伴 | 100 | 先 Ⅳ 型后SaaS型 | 单独使用服务器,每个应该使用一台虚拟机来承载 | 2 台 |
3 | 普通文员 | 350 | 先 Ⅳ 型后 Ⅱ 型 | 与本表序号 7 中的业务人员公用相同的物理机:10台 | |
4 | 重要文员 | 80 | 直接 Ⅳ 型 | 虚拟机隔离 | |
5 | 研发人员 | 250 | 先 Ⅴ 型后 Ⅱ 型或先 Ⅳ 型后 Ⅱ 型 | 研发部与其他部门先物理机隔离,然后各个项目间虚拟机隔离,人与人之间可采用容器隔离 | 9 台 |
6 | 领导 | 20 | 先 Ⅴ 型后 Ⅳ 型后 Ⅱ 型 | 先与其他部门做物理机隔离,然后领导间做虚拟机隔离 | 2 台 |
7 | 业务人员 | 400 | 先 Ⅳ 型后 Ⅱ 型 | ||
8 | IT运维人员 | 50 | V 型和 Ⅳ 型 | 部门 Ⅴ 型,部门 Ⅳ 型 | 5 台+若干台低配裸机 |
对表 2 解析如下:
1)公司领导的数据和应用特别重要,所以每个领导分配一台虚拟机,领导的虚拟机运行在专门的两台服务器上,两台物理服务器做成集群。
2)研发人员的重要程度等同于公司领导,他们具备大致相同的操作行为,所以也采用专门的物理服务器。但是同一个项目成员之间保密度不高,他们之间往往需要共享很多文档资料和源代码,并使用相同的开发工具,所以建议他们使用多用户远程桌面(先 Ⅳ 型后 Ⅱ 型)。
不同项目组之间应施行严格的隔离措施,即不同的项目组采用不同的虚拟机。如果一个项目足够大,超出了一台虚拟机的处理能力,那么可创建多台虚拟机,这些虚拟机之间通过 VLAN 互联。采用虚拟机而不是物理机的好处是,虚拟机迁移方便、可用性高。
3)业务人员面向的是公司的对外业务,涉及客户和提供商,他们积累的数据同样非常重要,对应用的可用性要求较高。所以,建议尽量使用专门的服务器,重要的职员使用单独的虚拟机,同一部门的职员使用虚拟机上的多用户桌面。如果某个部门内的职工人数很多,则可以分配多台虚拟机。
4)普通文员和重要文员使用专门的服务器,每个重要文员分配单独的虚拟机,普通文员采用虚拟机上的多用户桌面。当然,对于那些只维护应用的员工来说,也可以分配一台虚拟机。
5)IT 运维人员使用的软件比较杂,操作行为多变,需要经常模拟各种应用场景,所以直接给他们分配物理服务器是一个好主意。根据具体情况,可能一些运维人员还需分配多台服务器。
基于上述分析,最终我们设计的云计算方案框图如图 1 所示。
我们采用 OpenStack 云计算管理工具和 Mariants 公司的 Fuel 自动部署工具。在图 1 中,每个组承载一定数目的虚拟机,这些虚拟机可能被分割成不同的 VLAN,同一台虚拟机允许在它归属的组内“漂移”,但不能跨越组边界。所以我们采用的网络拓扑为基于 VLAN 的 Neutron,它支持网卡绑定、虚拟交换机(OVS)和 Murano,允许对租户进行隔离。
图 1 大型云计算方案框图
3. 网络设计
网络设计如图 2 所示。
图 2 网络设计
图 2 网络设计(续)
我们采用了 5 张网络平面,从上至下分别是公司内部网(或业务网)、管理网、存储网、Fuel 网和 Ceph 内网。其中,公司内部网相当于公司的传统 IT 系统网络,分配给员工使用的虚拟机和一些应用服务器(如网站、邮箱等)都属于这张网;而管理网、存储网、Fuel 网和 Ceph 内网组成 OpenStack 相关网络部分,OpenStack 的作用就是管理虚拟机,是手段。
在图 2 中,由 Ceph 内网支撑的立方体代表 OSD 服务器,由 Fuel 网支撑的立方体代表 OpenStack 中的控制和计算服务器,贯穿公司内部或者由其支撑的立方体代表虚拟机和应用服务器。
一个立方体的支撑网络平面和贯穿网络平面代表一台服务器同时处于几个网络平面中,如图 2 中的 OpenStack 服务器同时处于 3 个网络平面。各个网络平面的作用如表 3 所示。
网络名称 | 作用 | 网络参数 |
---|---|---|
公司内部网 | 云终端用户、虚拟机之间、应用服务器之间的通信包,以及与公司外部的交换数据包 | B 类地址 +VLAN,172.16.0.1/16,服务器和虚拟机采用固定 IP,终端采用动态 IP |
管理网 | 承载 OpenStack 各组件间的通信包、管理员的管理数据包 | 192.168.1.1/24,固定 IP |
存储网 | 中央存储与服务器、虚拟机的存储数据包 | 192.168.2.1/24,固定 IP |
Fuel 网 | 服务器自动安装操作系统的数据包 | 192.168.3.1/24,固定 IP |
Ceph 内网 | Ceph 内部各个节点之间同步数据包 | 192.168.4.1/24,固定 IP |
本大型方案决定采用 OpenStack 构建基础平台,全部的集群具备横向扩充的特征,对于 OpenStack 我们做如下设计。
在云端存在 8 个集群,其中管理集群用来运行 OpenStack 服务(但不包含业务计算节点),所以管理集群本身的虚拟机不纳入 OpenStack 中管理。而每个集群上的虚拟机不允许“漂移”到其他集群,所以我们采用 HA 对全部机器进行分组,同时只采用一个 Region 和一个 Cell。之所以要采用 Cell,是为了以后扩展,如图 3 所示。
图 3 采用 Cell
为了便于区分和记忆,直接采用集群的名字作为 HA 分组的属性,属于同一个 HA 组的机器最好分布在不同的机柜,每个机柜一般都有各自的供电、网络、避雷和冷却等设施,这样就能最大限度地保证同一个 HA 内的机器不会同时损坏。分组情况如表 4 所示。
序号 | HA 分组属性 | 对应的集群 | 机器数目 |
---|---|---|---|
1 | guest | 访客群 | 2 |
2 | partner | 合作伙伴群 | 2 |
3 | office | 办公集群 | 10 |
4 | development | 开发集群 | 9 |
5 | leader | 领导集群 | 2 |
6 | support | 运维集群 | 5 |
7 | base | 基础服务集群 | 6 |
加上管理群等,差不多有 45 台机器,全部采用 2U 的机架式服务器,安装在 3 个机柜中,要求每个分组的机器分散到尽量多的机柜中,如图 4 所示。
图 4 机柜布局
管理群中有 3 台服务器,每台服务器上运行 3 台虚拟机,第一台虚拟机运行 Keystone 和 Horizon 服务,第二台虚拟机运行父 Cell 中的 4 个服务,第三台虚拟机运行子 Cell 中的几个控制服务(AMQP、Database、Nova-cells、Nova-scheduler、Nova-network),通过负载均衡器把任务平均调度给 3 台服务器。
一共 9 台虚拟机,分成 3 组,每组 3 台虚拟机中运行相同的服务,共同承担由负载均衡器分配过来的任务。
系统架构图中的基础服务集群包括 DNS、域控、DHCP、局域网接入认证、单点登录、IT 设备监控、用户上网行为管理、病毒特征库、补丁中心、入侵检测、VPN 等。
4. 存储设计
中央存储部分保存公司与办公相关的数据,所以科学设计中央存储非常关键,必须从容量、性能、可靠性等方面仔细斟酌。本案例的存储需求说明如表 5 所示。
需求项 | 值 | 备注 |
---|---|---|
1. 预算多少? | 200 万元 | 只包括存储服务器 |
2. 业务类型是什么? | 云桌面 | 移动办公私有云 |
3. 访问存储的应用软件? | Hypevisor | KVM |
4. 存储的数据类型? | 大文件 | |
5. 容量偏好还是性能偏好? | 性能偏好 | |
6. 初始数据量多少? | 1.5 TB | |
7. 数据增长率多少? | 7GB/天 | |
8. 主机请求 IOPS 多少? | 60000 | 1500个用户,每个用户 40 个 IOPS。由于存在写惩罚,所以磁盘实际 IOPS 在 100 000 以上 |
9. 吞吐(带宽)多少? | 1 Gbit/s |
方案选型时,对以下几方面加以关注。
- 多副本存储。
- 万兆网络:万兆交换机、多网卡绑定。
- 分布式系统:每个节点都能单独提供服务。
- 多采用 SSD。
- 消除单点故障。
综上所述,我们决定采用 Ceph 来构建存储子系统。Ceph 发展很快,目前已能在生产环境中使用。它对外能提供 3 种存储服务,分别如下。
- 对象存储服务(Object):有原生的 API,而且也兼容 Swift 和 S3 的 API。
- 块存储服务(Block):支持精简配置、快照、克隆等。
- 文件存储服务(File System):Posix 标准接口,支持快照。
Ceph 的优点如下。
- 高扩展性:使用普通 X86 服务器,支持上千台存储节点和数 PB 级的数据量。
- 高可靠性:不存在单点故障,多数据副本,自动管理,自动修复。
- 高性能:数据分布均衡,并行化程度高。对于对象存储和块存储,不需要元数据服务器,因此不存在瓶颈通道(短板)。
Ceph的架构如图 5 所示。
外界可以通过以下四条途径访问 Ceph:
- 通过文件存储服务接口,如 NFS。
- 通过块存储服务,如 iSCSI。
- 通过对象存储服务,如 OpenStack 的 Swift 就是采用 RESTfull 调用方式访问 Ceph 的。
- 采用编程函数库编写应用软件来访问 Ceph。
我们设计的集中存储方案逻辑框图如图 6 所示。
图 5 Ceph 架构
图 6 集中存储方案逻辑框图
在这个方案中,我们采用了 6 台存储节点、3 台监控节点、2 台文件系统元数据节点。其中,最关键的是运行对象存储守护进程(OSD 进程)的节点,Ceph 官方建议采用通用的服务器,比如惠普、戴尔品牌的机器都可以。
如果用不到 Ceph 的文件存储服务(如 NFS),那么元数据服务器(MDS)可以不要。客户端通过网络访问 Ceph 中的数据,负载被平均分配到全部的存储节点上,因此并没有瓶颈。访问数据的输入/输出通路如图 7 所示。
图 7 访问数据的输入/输出通路
在整个输入/输出通路上,带宽是由最慢的部件决定的。在这些部件中,内存的速度是最快的,“短板”必在硬盘、输入/输出控制卡、网卡、交换机中,下面分别加以阐述。
1)硬盘:
混合使用固态硬盘(SSD)和多块机械硬盘(HDD)。固态硬盘性能高、容量小,机械硬盘性能低、容量大,混合使用大致可以达到固态硬盘的性能和机械硬盘的容量。当然,还需要软件的配合才能发挥其最大的优势。在 Ceph 方案中,固态硬盘做日志盘,多块机械硬盘做数据盘,多块硬盘做成 JBOD 或者 RAD0。
表 6 所示是截至发稿前一些硬盘的 IOPS 和吞吐统计值。
磁盘类型 | 容量 | IOPS | 顺序读写吞吐 |
---|---|---|---|
ATA 5400RPM | ≤4TB | 55~85 | 115~120MB/S |
SATA 7200RPM | ≤4TB | 75~100 | 140~170MB/S |
SAS10000RPM | ≤1.2TB | 125~150 | 115~190MB/S |
SAS15000RPM | ≤600GB | 175~210 | 120~210MB/S |
SATA SSD | ≤800GB | 5000~120000 | 300~550MB/S |
mSATA SSD | ≤500GB | ≈18000 | 300~530MB/S |
PCI~E SSD | ≤3.2TB | 120000~9608000 | 300~2800MB/S |
ATA 5400RPM 的硬盘在笔记本、移动硬盘产品中多见。
SAS 硬盘在传统服务器中用得较多,但是其价格高、容量小的缺陷注定其将逐渐退出市场。
SATA 7200RPM 目前是主流,尤其是台式机用得最普遍,结合 SSD 硬盘,做成混合存储方案,越来越得到重视。
相比 PCI-E SSD,SATA SSD 用得更普遍,尽管 PCI-E SSD 具备卓越的 IOPS 和巨量吞吐,但是其动辄上万元的价格使绝大多数消费者望而却步。
总结:SATA 7200RPM 的机械盘 +SATA SSD 混合存储方案是将来两三年内的流行方案。
2)I/O 控制卡
硬盘控制器一般集成在主板上的南桥芯片中,尤其是台式机,很少需要额外添加硬盘控制卡。但是有时需要接入太多的硬盘或者需要更高的吞吐或者支持阵列,这时就要额外购买硬盘控制卡,并插入主板的 PCI-E 插槽中。无论是独立的控制卡还是集成到南桥芯片中,输入/输出控制芯片都至关重要(见表 7)。
输入/输出控制芯片 | 芯片 | JBOD | 回写缓存 | 备注 |
---|---|---|---|---|
HP P420i | Qlogic | 不支持 | 有 | 1Gbit/s |
LSI 3081E-R | LSI SAS 1068E | PCI-E,3Gbit/s | ||
华硕 P8B-C 集成,LSI SAS 9211-8i | LSI SAS 2008 | 支持 | 无 | PCI-E 2.0,6Gbit/s,30万IOPS,吞吐 6000MB/s,8口,支持电池供电保护数据 |
LSI Logic LSI00345 9300-8i | LSI SAS 3008 | 支持 | PCI-E 3.0,SAS 12Gbit/s,SATA 6Gbit/s,百万计 IOPS,吞吐 6000 MB/s,8 口,支持电池供电保护数据 | |
MegalRAID SAS 9631-8i | LSI SAS 3108 | 支持 | PCI-E 3.0,每端口 12Gbit/s,百万计 IOPS,吞吐 6000MB/s,8口,1GB缓存,双核,支持电池供电保护数据 | |
戴尔 H710 | LSI SAS2208 | 不支持 | 有 | |
超微主板集成 | LSI SAS2208 | 支持 | 有 | |
HP H220 LSI00345 9300-8i | LSI SAS 3108 | 支持 | 无 | PCI-E 3.0,6Gbit/s,60万IOPS,8口,支持电池供电保护数据 |
从表 7 中可以看出,输入/输出控制芯片几乎被 LSI 公司垄断。如果购买独立的 I/O 控制卡,建议芯片版本在 2008 以上。本方案中购买的是 LSI SAS 3008 芯片组产品,为以后预留足够的纵向扩展空间。
3)内存
在 I/O 通路上,内存的速度是最快的,所以在速度上没有特别的要求(当然,在执行指令的通路上,内存又会成为“短板”)。但是内存的稳定性至关重要,内存的稳定性要求不能出错,即使出错了,也还能纠正错误。因此,强烈建议采用具备纠错功能的 ECC 内存、多通道内存、DDR Ⅲ 代内存、服务器内存,当然内存容量越大越好。
4)网卡和交换机
网络很容易成为输入/输出通路上的瓶颈,可以肯定,如果采用单块千兆网卡或者千兆及以下的交换机,那么理论上网络的吞吐是 100 兆字节(约等于 1000/10),实验数据大概在 60 兆左右。表 6 中列出的最慢硬盘,其吞吐也在百兆以上。因此,组建 Ceph 存储时建议采用当时最快的网卡和网络设备。
比如 2014 年有万兆网卡和交换机,万兆网络理论吞吐是 1000MB,实验数据也在 600MB 以上,超过除 PCI-E 固态盘外的所有类型的硬盘吞吐。如果还嫌慢,就捆绑多块万兆网卡平摊流量,比如采用 n 块,那么理论吞吐就是 n×1000MB 了。注意,网卡的稳定性也很重要,所以要购买大品牌网卡,可能价格会贵很多,但是收益也很明显(减少一次数据丢失就赚了)。
Ceph 中的监控程序(MON)建议运行在单独的计算机上,至少三台。MON 监视整个存储集群的运行状态,记录 PG(对象的位置信息)和 OSD 日志,因此运行 MON 的计算机配置要求不高,采用一般配置(如 7GHz 的 CPU、16GB 内存、500GB 硬盘)即可。
硬件选型
1. 计算节点
各种集群中的服务器的主要任务是运行虚拟机,因此对 CPU 和内存比较敏感。基础服务集群中的计算机统一采用物理机直接安装法(不采用虚拟机),以便提高基础服务的快速响应能力,这部分机器对硬件配置要求不高,但是对可靠性要求很高,具体如表 8 所示。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
CPU | Intel 至强 E5-2620V2 | 6核,2.1GHZ。购买2个 | 5600 |
主板 | 华硕 Z9PE-D16C/2L | 支持双路,最大512GB内存 | 3300 |
内存 | 8 根金士顿 DDR3 1600 16G RECC | 128GB 总容量 | 10000 |
固态盘(系统) | 英特尔(Intel)S3500系列 | SATA 6Gbit/s 固态硬盘 2.5英寸 120G | 980 |
电源 | 航嘉HK700-12UEP | 950 | |
合计:20830 |
2. 控制节点
控制节点包括网络基础服务节点和 OpenStack 控制节点,其中网络基础服务节点有 3 个,OpenStack 控制节点有 3 个。
网络基础服务包括 DHCP、DNS、AD、RADIUS、IDS、CA、打印服务、NTPD 等,关乎整个系统的可用性,因此机器要求稳定可靠,性能倒在其次。
网络基础服务节点硬件配置如表 9 所示。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
主板 | 超微MBD-AISAI-2750F-O | 集成 C2750 CPU(8 核,2.4GHZ),4个千兆网口,1个IPMI口,MINI-ITX | 2800 |
内存 | 2根金士顿 DDR3 | 1600 8G RECC | 1200 |
固态盘(系统) | Intel DC S3500 | 120G | 1000 |
电源 | 台达电源适配器 | 主动 PFC 大功率 DCI2V 12.5A 额定 150W | 150 |
合计:5150 |
注意:系统做成只读的,可变数据放在 Ceph 中。
OpenStack 控制节点对计算资源没有特别偏好,要求 CPU、内存、网络和硬盘配备均衡,硬盘侧重于速度。OpenStack 控制节点硬件配置如表 10 所示。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
CPU | Intel Xeon E7-4807 | 6核心12线程,1.86GHz, LGA1567 | 3300 |
主板 | 华硕 Z9PE-D16C/2L | 支持双路,最大512GB 内存 | 3300 |
内存 | 4 根金士顿 DDR3 1600 16G RECC | 64GB总容量 | 5000 |
周态盘(系统) | 英特尔(Intel) S3700 系列 | SATA6Gbit/s固 态硬盘 2.5 英寸 100G | 1700 |
电源 | 安钛克 TP 650C | 650W, 80PLUS 金牌 | 700 |
合计:13500 |
3. Fuel 节点
Fuel 节点侧重于输入/输出通路带宽,即配备高速的网络、磁盘、内存,合理的硬件配置如表 11 所示。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
CPU | Intel Xeon E5-2620V2 | LGA2011/2.1GHz/15M, 6 核 | 2900 |
主板 | 华硕 Z9PE-D16C/2L | 支持双路,最大512GB内存 | 3300 |
内存 | 2 根金士顿 DDR3 1600 16GB RECC | 32GB总容量 | 2500 |
固态盘(系统) | 英特尔S3700系列 | 200G, SATA3,企业级 | 2890 |
电源 | 安钛克TP 650C | 650W,80PLUS金牌 | 700 |
合计:12290 |
4. 存储节点之OSD
Ceph 中央存储采用 6 台机器,三份备份模式,提供 96TB 的有效存储容量,物理磁盘容量为 288TB。单台计算机的配置参考如表 12 所示,可以自己组装,也可以购买类似配置的品牌计算机。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
CPU | Intel Xeon E3-1235 | 4 核 8 线程,3.2GHz | 1600 |
主板 | P9D-MH-10G-DUAL | 2 个万兆网口,2 个千兆网 口,集成 LSI 2308 磁盘卡,8 个 SAS 口,6 个 SATA 口 | 4000 |
内存 | 6 根金士顿 DDR3 1600 8G RECC | 48GB 总容量 | 3600 |
固态盘(系统) | Intel/英特尔 | DC S3500 120G | 1000 |
固态盘(日志) | OCZ RVD3-FHPX4-240G | 240GB,IOPS=130000,吞吐:读 1000MB/S,写 900MB/S | 3500 |
电源 | 酷冷至尊白金龙影 1000W (RS-A00-SPPA) | 80PLUS 白金牌/全模组/支持双 CPU/支持 SLI/支持背线/12 个 SATA | 1900 |
硬盘(SAS) | 8 块 4TB WD4001FYYG | 32TB | 20000 |
硬盘(SATA) | 4 块 4TB WD4000FYYZ | 16TB | 10000 |
合计:45740 |
根据 Ceph 部署经验值,一个 OSD 进程需要 1GHz 的 CPU 频率,1TB 的存储需要 1GB 内存,所以对本配置,一台计算机大约运行 12 个 OSD 进程(4×3.2),每个 OSD 进程大约分配 4GB 内存,并分别负责一块机械硬盘。240GB 的固态盘分为 12 个区,每个区 20GB,存放 OSD 进程的日志。
5. 存储节点之MON
存储节点配置之 MON 配置如表 13 所示。
配件名称 | 型号 | 参数 | 大致报价(元) |
---|---|---|---|
主板 | 超微 MBD-A1SAI-2750F-O | 集成 C2750 CPU ( 8 核,2.4GHz ), 4 个千兆网口,1个 IPMI 口,MINI-ITX | 2800 |
内存 | 2 根金士顿 DDR3 1600 8G RECC | 16GB 总容量 | 1200 |
固态盘(系统) | Intel DC S3500 120G | 1000 | |
固态盘(数据) | Intel DC S3500 480G | 240GB,IOPS=130 000,吞吐:读 lOOOMB/s,写 900MB/S | 4000 |
电源 | 台达电源适配器 | 主动 PFC 大功率DC 12V 12.5A 额定 150W | 150 |
合计:9150 |
本配置方案采用了服务器版的凌动 CPU C2750,超微的这块小主板相当于嵌入式主板,运行稳定可靠、功耗低,整台计算机的功耗在 40W 以内。
软件选型
应用层软件先不做考虑,我们主要是针对系统层,同时遵循开源软件优先、类型尽量单一、结构尽量简单的原则,最终选定的软件如表 14 所示。
软件类型 | 软件选型 | 备注 |
---|---|---|
宿主操作系统 | CentOS 7.2X86_64 | 最小化安装 |
云管理平台 | OpenStack Newton | 2016 年是 M 版,马上就放出 N 版了 |
存储 | Ceph | 实现对象存储、块设备和分布式文件系统 |
虚拟机 | KVM | |
来宾操作系统 | Windows Server 2012 R2 | 域控、远程桌面会话 |
Windows 10 | 办公 | |
CentOS 7.2 | 开发、运行中间件等 | |
局域网接入认证 | FreeRADIUS | |
入侵检测 | Snort | 易学、易用 |
上网行为管理 | Squid | |
VPN | OpenVPN | |
单点登录 | OpenlD | 也可以采用耶鲁大学的 CAS |
IT | 设备监控 | Zabbix |
消息队列 | RabbitMQ | |
SQL数据库 | MariaDB/MySQL-Galera | |
部署工具 | Mirantis Fuel | 自动化部署 OpenStack |
HA工具 | HAProxy、Pacemaker |
之所以选择 64 位的 CentOS 7.2,理由如下:它采用 Linux 内核 3.15 版,默认采用 XFS 文件系统(一个单文件系统容量可达 500TB),完美支持 Docker 容器,无缝衔接 Windows AD 域,还有其他众多的适合云计算的特征。
部署
整个系统的部署主要涉及 4 个部分,分别是 Ceph 的部署、OpenStack 的部署、基础服务集群的部署,以及虚拟机里的应用部署。这里只对前 3 部分做概括性介绍,应用部署不在本教程的讨论范围之内。
最著名的自动化部署 OpenStack 的工具有以下几个。
1)Mirantis 公司的 Fuel
Mirantis 是一家专门围绕 OpenStack 推广和运维的公司,其发布的开源自动化部署工具 Fuel 非常强大,囊括了安装操作系统、高可靠性高计算(HA)、安装 OpenStack 和运维监控等,而且实现了 CLI 界面和基于 Web 的 GUI。官方网站为 https://www.mirantis.com。
2)Puppet 公司的 puppetlabs-OpenStack
老牌经典,不过功能相对 Fuel 要弱。其他比较强大的工具都是基于它开发出来的。从 https://github.com/puppetlabs/puppetlabs-openstack 网站可以下载其文档和脚本。
3)红帽公司主导的 PackStack
基于 Puppet 开发,目前只支持 RedHat/CentOS 操作系统,支持多节点部署 OpenStack。项目网站为 https://github.com/stackforge/packstack。
4)OpenStack 社区的 Devstack
这算是最早的一套从源码安装 OpenStack 的自动化脚本,适合搭建开发或者实验的 OpenStack 环境,不适合在生产环境中使用。项目网站为 https://github.com/openstack-dev/devstack。
1. 准备工作
Ceph 存储系统中的各个节点的名字和 IP 分配如表 15 所示。
主机名 | IP地址 | 节点类型 | 备注 |
---|---|---|---|
monl | 192.168.4.11 | MON | IP地址范围是192.16&4.11〜20 |
monl2 | 192.168.4.12 | ||
monl3 | 192.168.4.13 | ||
mdsl | 192.168.4.21 | MDS | IP地址范围是192.16&4.21〜30 |
mds2 | 192.168.4.22 | ||
osdl | 192.168.4.31 | OSD | IP地址范围是192.168.4.31〜100 |
osd2 | 192.168.4.32 | ||
osd3 | 192.168.4.33 | ||
osd4 | 192.168.4.34 | OSD | IP地址范围是192.168.4.31〜100 |
osd5 | 192.16&4.35 | ||
osd6 | 192.168.4.36 | ||
osd7 | 192.168.4.37 | ||
osd8 | 192.16&4.38 | ||
adml | 192.168.4.10 | ADM | 管理控制台,IP地址范围是192.168.4.6-10 |
单台 OSD 节点上的硬盘文件如表 16 所示。
设备文件 | 分区 | 大小 | 作用 |
---|---|---|---|
/dev/sda | /这是固态盘/ | ||
/dev/sda1 | 8GB | 交换区 | |
/dev/sda2 | 32GB | 根分区 | |
/dev/sda3 | 78GB | 系统数据分区 | |
/dev/sdb | /这是固态盘/ | ||
/dev/sdb5~/dev/sdbl6 | 每个20GB,共12个 | 日志分区 | |
/dev/sdc | 4TB | OSD数据区 | |
/dev/sdd | 4TB | OSD数据区 | |
/dev/sde | 4TB | OSD数据区 | |
/dev/sdf | 4TB | OSD数据区 | |
/dev/sdg | 4TB | OSD数据区 | |
/dev/sdh | 4TB | OSD数据区 | |
/dev/sdi | 4TB | OSD数据区 | |
/dev/sdj | 4TB | OSD数据区 | |
/dev/sdk | 4TB | OSD数据区 | |
/dev/sdl | 4TB | OSD数据区 | |
/dev/sdm | 4TB | OSD数据区 | |
/dev/sdn | 4TB | OSD数据区 |
每个 4TB 的硬盘对应一个 20GB 的日志分区。
计算节点 120GB 的固态盘分成三个分区,即根分区 32GB、数据分区和交换分区 8GB。控制节点做同样的分区规划,Fuel 分区无须人工规划,在安装 Mirantis Fuel 时自动完成。
2. 具体部署
我们采用 Fuel 来部署 OpenStack,按照下面的任务列表进行部署。
1)部署 Fuel 主机
从 Mirantis 官网下载最新的 Fuel 的 ISO 镜像文件并做成启动介质(USB 盘或光盘),启动计算机,在开始安装界面上按 Tab 键并修改 shomenu=yes,这样在 Fuel 安装过程中会跳出一个设置界面,可以设置如下参数:
- 为每块网卡设置动态或静态 IP 地址。
- 设置静态和动态 IP 地址池。
- 设置时钟同步。
- 设置操作系统的 root 密码,修改管理用户 admin 的密码。
- 设置 DNS 参数。
- PXE 参数。
注意,事先记下各块网卡的 Mac 地址和链接的网络,这样配置时就不会搞乱。安装时人工干预不多,几乎是自动完成的,但是时间有点长,大概需要 20 多分钟。安装完成后打开网站http://ip:8000 输入 admin 用户和密码登录可视化的管理界面(默认密码是 admin)。
2)部署其他主机
其他节点机全部设置成从网卡启动,并开机,这些机器都会自动安装操作系统。一会儿 Fuel 就会检测到这些节点,并把数目显示在靠近右上角的地方,比如 X 个全部节点,Y 个未分配节点。
3)部署 OpenStack
首先新建一个 OpenStack 环境,如图 8 所示(一个 OpenStack 环境包含控制节点、计算节点和存储)。在新建 OpenStack 环境的过程中指定如下参数。
图 8 OpenStack环境
- 名称和操作系统类型、OpenStack 版本:weisuan,Newton on CentOS 7.2。
- 选择部署模式:带 HA 的多点模式。
- 选择虚拟机软件:KVM。
- 选择网络拓扑类型:Neutron VLAN。
- 选择存储后端类型:Cinder 块存储和 Glance 对象存储都选择 Ceph。
在这个方案中,我们采用了三个控制节点,做成高可用性集群(HA),如图 9 所示。这是因为 MySQL 采用 Galera 以获取高可用性,而 Galera 采用少数服从多数的算法,所以至少需要三台服务器。
图 9 三个控制节点
接下来可对刚刚创建的 OpenStack 环境做更细致的配置,比如在“设置”页上可以修改 admin 用户的密码、安装额外的组件、改变虚拟机软件的类型等,在“节点”页上添加、删除节点等,如图 10 所示。
图 10 配置 OpenStack
在“节点”页上勾选一台或若干台机器,然后单击“网络配置”按钮,给每块物理网卡指定网络平面,单击“磁盘配置”按钮可对机器规划硬盘分区。
在“网络”页上为各个网络平面设置网络参数,在“动作”页上可以修改 OpenStack 环境名称或者删除整个环境。最后单击“部署变更”按钮开始部署,各台服务器开始安装操作系统,并根据分配的角色安装相应的 OpenStack组件,如图 11 所示。
图 11 安装 OpenStack 组件
部署完成后,单击“健康检查”页,对整个 OpenStack 环境做一次全面的检查测试。如果发现问题,查看有关日志并解决问题,直到健康检查顺利通过。
最后在屏幕的上部会显示我们访问 OpenStack 仪表盘(Horizon)的 URL 地址:http://172.168.0.54/,打开这个 URL 进入 Horizon 的登录界面,如图 12 所示 ,登录之后就可以管理整个 OpenStack 了,当然主要是管理虚拟机。
图 12 登录
知识小贴士
OpenStack 部署之后一些默认的参数如下:
- Fuel 管理 Web 页面的登录用户和密码:admin/admin。
- Fuel 服务器和其他 OpenStack 节点的 root 密码:r00tme。
- TestVM SSH user/password:cirros/cubswin:).
- 获取控制节点的 CLI 权限,运行命令:#source/root/openrc。
- Horizon 的登录用户和密码:admin/admin。
完成如下操作:
1)在“管理员→系统面板→虚拟机管理器”中查看各个计算节点信息和总数目。
2)在“管理员→系统面板→主机集合”中新建如下“主机集”:访客组、合作伙伴组、办公组、开发组、领导组、运维组,再把相应的计算节点归属到各自的主机集中。同时,取相同的可用域名称,这样可方便以后启动虚拟机时指定可用域。
3)在“管理员→认证面板→项目”中创建适当的项目,一般按公司部门创建,同时指定各个项目的资源配额。项目等同于租户,是资源配额的基本单位,一个租户可以包含若干个用户,这些用户消耗的资源不能超过租户的总配额。
4)在“管理员→认证面板→用户”中创建用户,为公司每个需要使用云计算的员工创建用户,同时指定其归口的项目(租户),角色统一为 Member。
5)在“管理员→系统面板→镜像”中创建镜像,分别创建 Windows XP、Windows 7、Windows 8、CentOS、Ubuntu 的镜像,并且在镜像中安装基本的办公软件。以后启动虚拟机时要用到镜像。
6)在“项目→计算→实例”中启动虚拟机,虚拟机算是镜像的实例,从一个镜像中可以启动多台虚拟机。
转载于:http://c.biancheng.net/cloud_computing/