经常会听到一些厂商谈到软件定义技术,你可能以为这是一种新的东西,但软件定义存储是从软件定义架构的其他主要元素诞生就存在了。上个世界80年代的文件服务器就被认为是软件定义存储,因为它们能够向客户端呈现存储,而不仅仅是在服务器内部。
软件定义存储的最简单定义就是,它是一种管理与底层硬件解耦存储的软件。然而,厂商基于各自的平台对这个名词给与了不同的定义。
一些平台是纯软件产品,它们将各种不同的存储池呈现为单一连续的盘块,还有一些会提供复杂的支持选项,包括复制、快照以及基于标准硬件的分层功能。
对于灵活性的需求催生了软件定义技术
过去的20年中,大型SAN提供了多种对冗余和高可用极其有用的特性,
包括复制、掳爱找、RAID以及对象存储,还包括通过自动精简配置、分层和压缩实现的效率增加。系统管理员已经从服务器和SAN模式迁移到基于vSphere、Hyper-V和其他hypervisor的超融合系统、云以及虚拟服务器。
存储厂商快速响应了这种软件定义架构的应用增长。通过光纤通道、iSCSI、LAN、WAN、HTTP和其他类型的连接协议,***范围的支持存储可用。通过虚拟服务器,支持存储从一台硬件迁移到另一台,无论这台硬件是在本地数据中心、远程数据中心还是在云中。
随着应用程序从单个PC上的单个项目发展至运行在本地、云或者移动设备上一组服务器上的分布式应用,存储也随之发生转变。从最初的块存储到文件共享再到对象存储,抽象层的引入实现了不同位置广泛的设备在统一文件下的组织管理。
软件定义特性让存储快速、安全、灵活
灵活性是软件定义存储的核心。软件定义存储支持任意位置的应用连接。
除了为不同位置的应用提供存储,软件定义存储架构还能通过自动分层或者缓存优化性能和成本。自动分层是将最活跃数据存往最快的存储介质上,缓存是使用最快的存储介质,通常是RAM或者闪存来加速读写。分层和缓存是优化存储的两种方法。
过去几年,软件定义架构系统的复杂性大大增加。在15到20年前,系统的层次要少的多。今天,在RAM和最快的闪存盘中间还有多种层次:
- 基于内存总线的存储,如3D XPoint、Memory1和磁阻式RAM
- PCI Express和NVM Express闪存
- 标准 SATA和SAS闪存
- 15000 rpm和10000 rpm硬盘
- 7200 rpm高性能硬盘
- 磁带和云
安全也变得日益复杂。软件定义技术也提供多种安全特性:
- 防止数据丢失的冗余
- 整合应用防止太多副本传播
- 支持快速镜像或用以启动新版本数据库的快照
- 复制到远程位置
- 备份到云
提供这些特性的软件定义架构系统有一定劣势,它可能不如运行于单一硬件的SAN系统健壮。除此之外,管理员也会发现,要获得全部特性支持,他们不得不运行多个软件定义存储系统,而这也会多系统的冲突问题。
而配置软件定义系统往往也会比插入式SAN系统更加复杂。 而对于很多管理员,这种无须从单一厂商购买更多新硬件的软件升级的能力以及适用于广泛应用的存储灵活性,引发了软件定义系统的盛行。