TaoCloud SSAN是分布式块存储产品,oVirt是Redhat的开源IaaS平台,这两者计算存储融合可提供一体化的虚拟化/私有云解决方案,帮助客户获得更好的高性能、高可用、扩展性、业务连续性、简化管理、更低的整体成本。
本文档介绍TaoCloud SSAN + oVirt的融合解决方案,重点阐述方案架构、系统部署、功能测试、高可用测试、性能测试等内部,从而为技术人员进行POC测试或系统实施提供参考。
一、SSAN简介
TaoCloud SSAN是典型的ServerSAN产品,遵循软件定义存储理念,可从X86服务器硬件平台的本地存储资源中创建基于服务器的SAN,以便按需提供具有弹性的、可扩展的存储容量和性能。SSAN采用去中心化的全对等Share-nothing架构,融入Scale-out分布式块存储技术,闪存优化技术,超融合技术,安全加固技术,构建高效、可靠、智能、弹性的存储计算平台。
SSAN采用Scale-out横向扩展存储架构,聚合X86服务器内的存储和计算资源,可最小从3个X86服务器节点动态扩展到上千个X86服务器节点,实现EB级的海量存储容量和大规模I/O并行的存储性能。SSAN支持动态的性能扩展,随着新存储节点的加入,整体性能持续线性增加。
SSAN遵循SDS软件定义存储的设计理念,充分整合各类 IT硬件能力(CPU、内存、总线、磁盘、网络等),以存储软件的高度优化和硬件资源最大化利用为目标,构建高效,智能、可持续升级的开放型软件定义存储系统。SSAN集合多种企业级数据服务功能(例如 QoS、自动精简配置和快照),可实现大规模、高可靠、高性能、超融合的存储应用,非常适合对可扩展性和存储性能要求不断提升的应用场景,如数据库、虚拟化、云计算等。
针对虚拟化应用场景,SSAN支持融合/超融合部署模式,每个SSAN存储节点同时也是计算节点,通过标准iSCSI接口实现高效的I/O数据访问。在SSAN中可配置高性能SSD介质,实现存储加速或自动分层部署。SSAN支持高效的快照机制,可支持无限数量的并发快照,非常适合虚拟化应用中的虚拟机批量创建/克隆等需求。
TaoCloud SSAN分布式融合存储差异性特点如下:
(1) KISS简单系统,无中心对称式系统架构;
(2) 单卷最大256TB,卷级冗余策略,支持副本和纠删码;
(3) iSCSI标准接口,支持多路径,易于对接各种应用系统;
(4) 支持FC和NAS(NFS/CIFS/FTP)协议导出;
(5) 单一集群支持多个存储池,支持物理和融合部署;
(6) WebGUI管理系统,支持三员分立权限管理;
更多SSAN产品资料请从 http://www.taocloudx.com 获取。
二、oVirt简介
oVirt(Open Virtualization)是一个基于KVM虚拟化技术的开源IaaS解决方案项目,它是Redhat云管理平台RHEV的社区版本,主要的使用场景是私有云管理,在架构设计上使用了节点/引擎(Node/Engine)架构,特点是专注KVM、基于WEB界面、易于搭建。oVirt类似于VMware vSphere,它是RHEV产品的基石,是RHEV的一个上游项目,一些KVM上的新技术,比如SPICE、GlusterFS等都首先在oVirt上得到支持,之后才会出现在企业版的产品中。oVirt的理念是数据中心虚拟化管理平台解决方案,目标是方便快速的构建私有云。
oVirt提供基于Web的虚拟机管理控制平台,oVirt是KVM开源管理程序,该虚拟机软件支持主流的x86硬件,并允许用户在其上运行Linux及Windows操作系统。无论是一台主机上的几个虚拟机,还是管理数百台主机上的成千个虚拟机。因此,oVirt专门面向基于linux系统的KVM虚拟化应用场景,为主机和客户机提供特性丰富且功能强大的服务器虚拟化管理系统,具体包括高可用性、实时迁移、存储管理、系统调度管理等。
oVirt在架构设计上使用了Node/Engine分离结构,以方便功能的划分与管理。oVirt由客户端和管理端组成,客户端即oVirt-Node 类似于VMWare ESXi,最早由Fedora订制而成,从3.5版本开始使用RHEL6定制,可以在生产环境使用。oVirt也支持在Linux系统上安装VDSM服务而得到一个oVirt客户端,管理端oVirt-Engine 类似基于Web页面的VMWare vCenter。oVirt按照数据中心来划分资源,每个数据中心有整体的存储、网络、模版资源,计算资源按照集群划分,每个集群从数据中心在获取存储、网络、模版资源。oVirt对宿主机管理非常详细,软件和硬件信息都很齐全,甚至可以通过IPIM控制宿主机的电源。oVirt对虚拟机创建是向导式的,也可以将虚拟机转换成模版,通过模块快速复制。
oVirt的主要特性如下:
(1) 宿主机节点管理:支持基于数据中心,集群的管理;
(2) 虚拟机管理:虚拟机的创建、快照、删除、基于模版的克隆等常见操作;
(3) 动态迁移:在线及离线迁移虚拟机;
(4) 高可用:当一台宿主机宕机,在另外一台宿主机上自动开启虚机;
(5) 管理资源的配额(storage, compute, network);
(6) 宿主机、虚拟机性能查看及统计;
(7) 支持NFS、iSCSI、FC、GlusterFS等存储方式;
(8) 支持多端口的网口绑定;
(9) 支持命令行工具,可以完成图形界面的大部分功能;
(10) 支持AD活动目录;
(11) 提供SDK,支持多种开发语音;
(12) 开源免费;
更从oVirt资料请从 http://www.ovirt.org 获取。
三、方案介绍
1、SSAN+oVirt融合方案
oVirt开源IaaS平台多用于桌面云,也可用于服务器虚拟化。桌面虚拟化/云桌面是典型的多客户端、高并发应用,随着虚拟桌面数量的增多,对存储的容量和性能呈明显的上升趋势。启动风暴以及集中病毒扫描和关机风暴,对存储I/O提出了更高的弹性要求,以满足峰值性能需求。关键的桌面应用会非常在意业务连续性,包括虚机HA、FT(Fault Tolerance)以及冷热迁移。如果没有数据高可用支持,实现桌面业务连续性会很困难或者代价太高。桌面部署时,会要求快速生成新的大量的桌面镜像,需要高效的快照/克隆技术。桌面云的价值很多,诸如访问便利、集中式管理、安全性高、软件升级方便、应用环保等,但最痛的问题还是成本问题,降低整体成本是桌面云竞争的关键之一。
oVirt支持NFS/iSCSI/FC等外部存储系统,同时也支持分布式文件系统。假设每桌面需要50个IOPS,存储容量100GB,则1000个桌面需要5万IOPS/100TB存储性能需求,同时需要数据高可用则还需要1~2倍数据冗余。这种存储需求下,传统的存储无论在性能、可用性、扩展性、管理性、成本等方面都是极大的挑战,实际应用中难以满足需求,还要承担极高的成本。
TaoCloud SSAN是典型的Server SAN,借助于软件定义存储、开放式X86标准架构和高性能SSD存储介质,SSAN可以替换传统SAN/NAS存储,更好地满足虚拟化对存储的新需求。采用TaoCloud SSAN构建分布式块存储平台,提供可靠、高效的数据存储服务,可以实现模板数据、镜像数据、配置数据、业务数据的统一存储。SSAN可与VDI主机实现融合部署,进一步提升I/O效率比降低成本。根据性能、成本综合考虑,可配置全SSD模式或SSD+HDD混合模式。 VDI主机与SSAN之间可通过iSCSI(优先选择)连接,也可以通过Qemu接口进行连接。针对虚拟桌面管理平台的资源配置及控制需求,可通过定制化开发功能实现管理整合或对接。SSAN的SSD Cache功能可实现在配置少量SSD的情况下,实现很高的性能,高效的ROW快照及克隆功能可支持快速、批量的创建桌面。大量实践表明,TaoCloud SSAN可以很好地支持oVirt平台。
SSAN支持物理分离和融合部署方式,这里采用SSAN+oVirt融合部署方案,每台物理服务器既是oVirt计算节点,同时也是SSAN存储节点。这种方案可以更好发挥本地存储优先访问策略优势,可以提高资源利用效率,也进一步降低了成本。方案优势如下:
1、弹性存储,支持在线快速扩容;
2、高可用存储,数据多副本,存储不中断;
3、高性能存储,闪存优先,本地I/O优先,高效的快照和克隆;
4、iSCSI标准接口,支持各类VDI平台;
5、融合架构,进一步提升效率,降低成本;
6、支持定制化开发,满足个性化的资源管控需求;
2、方案拓扑
为了便于方案POC测试,这里采用3节点融合部署方案,实际应用根据需求确定集群规模。SSAN采用副本方式保证数据安全性和可用性,副本策略可以根据实际需求灵活设置,POC测试采用三副本策略。存储介质推荐全SSD或SSD+HDD,网络互连建议10GbE,POC环境采用全SSD/万兆。测试拓扑如下:
3、硬件环境
硬件项目 |
配置 |
数量 |
提供者 |
X86服务器 |
E5 2620v2单路CPU; 64GB内存; |
3台 |
|
SSD |
Intel DC3700 400GB |
6块 |
|
万兆网卡 |
Intel X520-SR2万兆网卡 |
3块 |
|
万兆交换机 |
48口博科10GbE交换机 |
1台 |
|
万兆模块和网线 |
SFP+光纤 |
3套 |
4、软件环境
软件项目 |
配置 |
提供者 |
Linux OS |
CentOS 6.7 x86_64 (2.6.32-573) |
用户/TaoCloud |
oVirt |
3.5.6 |
用户/TaoCloud |
SSAN |
1.3.2 |
TaoCloud |
IP地址 |
3个管理IP+3个数据IP,分为两个网段 |
用户 |
四、系统部署
1、CentOS安装配置
1.1、开启CPU虚拟化(VT)功能
oVirt基于KVM虚拟化技术管理虚拟机,需要CPU虚拟化(VT)功能支持,开机启动进入BIOS设置,开启虚拟化VT功能。如图所示,开启Intel VT-x(CPU硬件虚拟化)以及Intel VT-d(PCI Passthrough IO虚拟化)。
1.2、CentOS最小安装
X86服务器硬件和网络硬件安装配置完成后,即可以进行操作系统和相关软件的安装。每个服务器节点安装相同版本的操作系统,Linux OS采用CentOS 6.7 x86_64 (2.6.32-573)最小模式。如果是Intel的万兆网卡和SSD,Centos 6.7可以直接支持,不需要额外安装驱动。其他厂商的万兆网卡和SSD,请按照厂商文档安装对应驱动。
1.3、系统配置
(1)DNS设置
oVirt配置Engine和Node时,需要使用节点的域名,即oVirt中节点的FQDN。如果有本地有DNS服务器,可以将所有节点的HostName和IP添加进去。若没有,每个节点(包括Engine)均需写到本地。
(2)关闭及清除iptables设置
由于SSAN需要关闭iptables,而oVirt在安装配置过程中会自动开启iptables,在每次oVirt节点配置后需重新关闭及清除iptables规则。
(3)Multipath多路径屏蔽
oVirt是通过multipath管理存储,而SSAN是直接使用硬盘设备。由于硬盘被SSAN使用,而oVirt会不断尝试使用multipath管理这些硬盘,导致报错。因此,需将本地硬盘及系统盘添加到multipath的blacklist中,而设备名可能会发生变动,需要使用wwid添加。
2、SSAN安装配置
2.1、SSAN软件安装
SSAN集群节点自动化进行安装配置,直接执行ssan_install.sh即可。
(1) 集群节点自动安装
./ssan_install.sh
输入节点序号(如0, 1, 2),将自动安装SSAN软件包,并自动进行相关系统配置。SSAN每个节点上执行此步骤,多个节点可以并行安装。
第一个节点安装时,如果SSAN集群配置文件ssan_install.conf不存在,则会进行交互式输入,也可以手动编辑,其他节点可以直接使用此配置文件。
交互输入信息包括:
ssan_node_nr: ssan节点数量,缺省是3;
zk_node_nr: zookeeper节点数量,缺省是3;
zk_client_port: zookeeper客户端端口,缺省是2181;
zk_server_port: zookeeper服务器端口,缺省是2888:3888;
ntp_server: NTP服务IP地址,可选配置项,保证节点时间同步即可;
webgui_server: ssan webgui管理节点IP,可选配置项,使用webgui管理;
node1_mip: 第1个节点管理IP,必填配置项;
node2_mip: 第2个节点管理IP,必填配置项;
node3_mip: 第3个节点管理IP,必填配置项;
(2) 启动集群服务
SSAN集群管理依赖zookeeper、sagentd和suiagentd服务。集群所有节点安装配置完成后,需要在每个节点手工启动服务,或者直接reboot也可以。请确认每个节点以上服务都处于Running状态。
2.2、WebGUI安装
SSAN支持命令行和WebGUI两种管理模式,推荐使用WebGUI进行集群管理。管理节点可以单独部署,也可以部署在其中一个SSAN节点上。这里我们选择第一个节点作为管理节点。
./ssanweb_install.sh
第一个节点上直接运行上述ssanweb安装脚本,自动安装ssanweb-1.3.2-1.el6.x86_64.rpm和webgui运行环境所需求的依赖包,包括httpd、mysql、php等,并自动完成webgui运行环境的配置。安装完成后,请确认mysqld、httpd服务处于Running状态。
2.3、SSAN集群配置
下面我们使用WebGUI来对SSAN进行初始的集群配置。
(1) 登录WebGUI
SSANWEB安装完成后会提示WebGUI访问地址,比如 http://192.168.1.1,缺省登录用户名admin,密码为taocloud。登录之后,可以修改密码和创建新的管理用户。
(2) 加入节点
初次登录WebGUI管理系统,“集群管理-->节点管理”中没有任何SSAN节点,我们通过“增加”功能将三个节点加入集群。其中IP地址为安装时填写的mip管理地址。
(3) 初始化磁盘
SSAN以整个磁盘为单位管理存储资源池,需要对每一个磁盘进行初始化操作。通过“磁盘管理-->物理磁盘”中的磁盘初始化逐一对磁盘进行初始化。初始化成功后,对应磁盘显示健康和已挂载状态。
(4) 创建OSD
SSAN中由多个OSD(Object Storage Daemon)组成,每个节点运行若干OSD进程,每个OSD管理一块或多块物理硬盘,支持SATA、SAS、SSD等类型硬盘。通过“虚盘管理-->OSD管理”增加OSD,选择节点、管理网络(IP:Port)、数据网络(IP:Port)、元数据磁盘、数据磁盘即可。其中,网络和磁盘不可以重复使用。
(5) 启动SSAN
全部OSD创建完成后,初始存储资源池就配置完成了,后续可以Online增加OSD进行扩容。通过“集群管理-->节点管理”中的“操作-->启动SSAN”启动所有的OSD进程。
(6) 初始化集群
初次启动OSD后,初始对SSAN集群进行初始化,自动设置全局缺省存储池策略。通过“集群管理-->节点管理”中的“集群-->初始化”进行操作。
2.4、创建oVirt虚拟磁盘
这里我们把oVirt中所需要的全部存储都放置于SSAN存储池中,包括Hosted Engine虚拟镜像、数据存储域和ISO存储域。创建三个虚拟磁盘VD,均采用三副本冗余策略,容量分别为30G、500G、100G。在SSAN WebGUI管理平台中创建如下三个VD:
(1) 创建并输出一个30G的VD,用于安装Hosted Engine。
(2) 创建并输出一个大容量500G的VD,作为oVirt的数据存储域。
(3) 创建并输出一个100G的VD,并创建一个NFS共享,作为oVirt的ISO存储域。
3、oVirt安装配置
oVirt的管理节点叫做oVirt Engine,资源节点叫做oVirt Node。oVirt Engine主要有分离部署、All in One和Hosted Engine三种部署方式。这里我们推荐并采用Hosted Engine部署方式。这种模式下,oVirt虚拟化集群本身在共享存储上建立一个虚拟机,使用此虚拟机作为oVirt Engine,支持的存储协议包括NFS3、NFS4、iSCSI(V3.5+)、GlusterFS(V3.6+)、FC(V3.6+)。部署过程相对复杂一点,但是通过Hosted Engine HA避免了单点故障。
官方推荐通过repo源在线安装,如果无法访问外网,则可以通过缓存yum安装包的方式获取依赖RPM包,然后进行离线安装。
3.1、Hosted Engine安装
(1) 安装oVirt 3.5的repo源
rpm -Uvh http://resources.ovirt.org/pub/yum-repo/ovirt-release35.rpm
(2) oVirt Hosted Engine的安装
yum install ovirt-engine
(3) 首个oVirt Hosted Engine的配置
ovirt-hosted-engine-setup Or hosted-engine --deploy
i. 选择iSCSI,连接所创建30G的iSCSI存储;
ii. 选择oVirt管理网络所桥接的网卡,选择不配置iptables,以及选择用于安装Engine的OS的ISO。网卡要避开SSAN所使用的网络;
iii. 确认配置后,安装脚本会启动一个虚拟机。通过VNC连接到虚拟机,安装CentOS6;
iv. 操作系统安装后会重启VM,此时选择继续安装,安装脚本会再次启动此VM。启动后,安装oVirt Engine并配置DNS等;
v. oVirt Engine安装且配置完成后,选择继续安装。等待安装脚本更新oVirt Engine的数据库后,根据脚本提示关闭VM,安装脚本配置完成;
vi. 完成后,Hosted Engine HA进程会检测并启动Engine所在的VM。此时可以通过Web访问oVirt Engine,管理虚拟化平台了;
vii. 由于安装过程中oVirt会开启iptables,需要再次关闭并清除iptables的设置;
(4) 附加oVirt Hosted Engine的配置
ovirt-hosted-engine-setup Or hosted-engine --deploy
i. 选择iscsi,连接所创建30G的iscsi存储;
ii. 安装脚本会检测到该盘已包含数据域,确认本次是Hosted Engine的附加节点安装。输入Host ID,注意节点不要跟已有的节点重复;
iii. 脚本提示输入首节点IP,用于拷贝配置文件。选择oVirt管理网络所桥接的网卡;
iv. 完成Hosted Engine的附加节点的配置。此时可以通过命令查看Hosted Engine节点的状态。
hosted-engine --vm-status
3.2、oVirt存储配置
(1) 集群存储数据域
数据存储域是面向整个虚拟化集群的存储资源池,由oVirt对存储的一个Lun进行再次分配管理。集群中的虚机均可从中划分一部分空间作为虚盘。
存储域的添加是在Web管理界面中,依次选择 数据中心-->存储-->新建域。选择Data/iSCSI,输入连接IP和Port,选择对应Lun即可。
(2) ISO存储域
ISO存储域是面向整个集群的ISO镜像资源池,虚机可连接其中ISO作为虚拟光盘。
存储域的添加是在Web管理界面中,依次选择 数据中心-->存储-->新建域。选择ISO/NFS,输入连接NFS的连接地址确定即可。
(3) 虚拟机外部存储
外部存储是面向单个虚拟机的,使得虚拟机可以独立的使用Lun作为虚盘。
存储域的添加是在Web管理界面中,依次选择数据中心-->集群-->虚机。选择待操作的虚机,在磁盘选项卡中选择添加虚拟磁盘。选择iSCSI,输入连接IP和Port发现,选择对应Lun即可。
3.3、存储多路径配置
(1) 添加多路径配置信息
手动在多路径配置文件/etc/multipath.conf中加入SSAN的多路径配置信息。或者直接通过ssan-mpath命令添加:
ssan-mpath.pl --mode device --op add
(2) 添加iSCSI多路径
i. 界面发现多路径
在存储域的添加的过程中,多次发现连接不同IP上的同一IQN,就会自动添加到该Lun的多路径中。
ii. 命令行发现多路径
在命令行手动发现并连接不同IP上的同一IQN,然后通过multipath查看:
iscsiadm -m discovery -t st -p 172.10.10.21:3262
iscsiadm -m node -T iqn.xxx -p 172.10.10.21:3262 –l
multipath -l
iii. 注意事项
多路径配置信息无法持久化,连接的多路径在节点重启后,后备路径会消失,需要重新连接后备路径。
五、功能测试
1、测试方法
按上述方法和步骤成功部署和配置SSAN+oVirt计算存储物理融合系统,我们就可以将oVirt中所有的虚机存储放置于SSAN存储池,包括HostEngine和Guest VM所涉及的Image镜像和云盘存储。功能测试重点验证数据存储域、虚拟机磁盘、快照克隆回滚等常规存储功能点,均在oVirt管理系统中进行操作。功能测试场景非常多,这里列举了一部分存储相关核心测试用例。
2、测试场景
六、高可用测试
1、测试方法
SSAN提供了多种数据可靠性和可用性机制,包括副本机制、iSCSI多路径,为oVirt的高可用性提供基础支撑,包括HostEngine和Guest VM的高可用。这里重点模拟iSCSI路径故障和主机故障来验证SSAN和oVirt的安全性和高可用性。
2、测试场景
七、性能测试
1、测试方法
性能是评估一个存储产品最为关键的指标,包括IOPS、带宽和延迟,这里采用FIO进行测试分析。
FIO是一个I/O标准测试和硬件压力验证工具,它支持13种不同类型的I/O引擎,支持块设备和文件系统测试,广泛用于标准测试、QA、验证测试等,支持Linux, Windows等操作系统。
2、测试场景
八、总结
oVirt作为轻量级的IaaS解决方案被广泛应用于桌面云和服务器虚拟化。oVirt支持NFS/iSCSI/FC等外部存储系统以及分布式文件系统,但是传统存储无论在性能、可用性、扩展性、管理性、成本等方面都是难以满足实际需求。
SSAN是典型的Server SAN,借助于软件定义存储、开放式X86标准架构和高性能SSD存储介质,SSAN可以替换传统SAN/NAS存储,更好地满足虚拟化对存储的新需求。SSAN支持物理分离和融合部署方式,融合或超融合部署可以更好发挥本地存储优先访问策略优势,可以提高资源利用效率,进一步降低了成本。
实践表明,SSAN+oVirt计算存储融合是更加适合oVirt虚拟化的存储解决方案。(完)