Virtual Volumes
Overview
卷由CPG中抽取资源,被映射到主机上成为LUN。虚拟卷是唯一对主机可见的数据层。
你可以对虚拟卷生成物理拷贝physical copies或是虚拟拷贝快照 virtual copy snapshots。在生成虚拟卷之前,你首先得生成CPG来供虚拟卷分配空间。
你可以将卷组织成 autonomic groups,像一个单独的卷那样进行管理。
可以用命令行或是管理控制台来生成虚拟卷。
对于可生成的虚拟卷和虚拟卷拷贝的最大数量,参考Single Point of Connectivity Knowledge (SPOCK) website http://www.hp.com/storage/spock.
NOTE: 生成 Thinly Provisioned Virtual Volumes (TPVVs) 需要 HP 3PAR Thin Provisioning Software license. 生成虚拟卷拷贝 virtual copies需要 HP 3PAR Virtual Copy Software license.
Virtual Volume Types
有三种类型的虚拟卷
. Fully provisioned virtual volumes (FPVVs)
. Thinly Provisioned Virtual Volumes (TPVVs)
. Administrative Volumes 管理卷
管理卷由存储生成,只用于对存储进行管理。
FPVV和TPVV有三个不同的数据单元:
. 用户空间User space是主机可用的逻辑硬盘部分。用户空间包含有用户数据,在主机上映射成LUN。
. 快照空间Snapshot space,也叫拷贝空间copy space,是CPG中用户数据在上次快照生成以来变化了的数据的拷贝。
. Administration space, 也叫admin space,跟踪上次快照生成以来卷发生变化的数据。admin space中保存有指向快照空间中数据拷贝的指针。admin space由存储来进行管理,不是用你管理用户数据和快照空间的工具。
你可以增加卷的大小,用户空间的大小,快照空间的大小如果有需要。如果用户空间或是快照空间用完了所有可用空间, Virtual Copy 特性的copy-on-write操作会失败。为了避免耗尽用户空间,TPVV自动从CPG中抽取空间。HP 3PAR OS会自动回收未使用的对TPVV和FPVV的快照中未用的空间。
为提供更高的灵活性,你可以由相同的,或是不同的CPG来提供空间给虚拟卷的用户空间和快照空间。 如果虚拟卷的用户空间和快照空间在不同的CPG上,当包含快照 空间的CPG满了时,虚拟卷还是可用的。为了减少重复工作,你可以一次性生成多个同样的虚拟卷。
如果你的存储被OpenStack cloud访问,可能你会看到很多卷有前缀,指示这些卷是由OpenStack cloud生成的。 由OpenStack cloud生成的卷使用 OpenStack Volume (OSV) 和 OpenStack Snapshot (OSS)前缀。
Administrative Volumes
做为安装和设置的流程的一部分,一个叫做管理卷administrative volume的卷在存储上生成。 这个卷由存储使用,存入一些管理数据比如说system event log. 这个管理卷总是名为”admin”. 它不能被映射给主机,也不能被删除。
CAUTION: 强烈建议你不要乱动管理卷。
Fully-provisioned Virtual Volumes
FPVV是叫做CPG的逻辑硬盘池中的一个卷。与TPVV不同,FPVV预先为用户数据分配全部空间,不管这些空间是否实际使用到。FPVV的大小是固定的,最大16TB. 你可以设置快照空间申请的极限值,并使用告警机制来帮助管理快照空间的增长。
Thinly Provisioned Virtual Volumes
有HP 3PAR Thin Provisioning Software license, 就可以生成TPVV。 TPVV按需分配空间,以最小一个chunklet的大小递增。卷由CPG抽取空间时,存储自动在存储池中生成额外的逻辑硬盘并加到存储池中直到CPG达到了定义的增长极限。TPVV最大16TB.
TPVV可以根据主机的写请求按需以每个控制器节点1个chunklet的大小递增。这些空间分配是适应性的,后续的分配是基于以前分配的空间的使用情况。
例如,如果一个TPVV初始化情况下分配了每个节点256MB但在少于6秒的情况下就消耗了这些空间,下次分配就会变成每节点512MB.但是,如果初始化情况下的256MB消耗得更慢一些,下次分配就还是每节点256MB. 在这些的架构下,最大的分配增幅是每节点1GB. 另外,当TPVV达到了它映射出的大小,或是分配的极限值,存储分配极限值外额外的每节点128MB来确保映射出来的TPVV的存储空间是可访问的。
CAUTION: 建议使用分配极限值来避免超出物理容量的极限。但是,在设置分配极限值时要注意。达到分配极限值以后,对TPVV的新的写操作会失败或者与CPG相关联的快照卷会失效。
CAUTION: 不要让卷又CPG中抽取的空间超出CPT的增长极限值。
TPVV Warnings and Limits
TPVV卷最大为16 TB. 生成TPVV时,你可以选择设置一个分配的警告阈值和一个分配的极限阈值。
. allocation warning threshold分配警告阈值:这个值是映射给主机的大小的一个百分比,卷增长到这个比例以后存储生成一条警告信息。
. allocation limit threshold分配极限值:这个值是映射给主机的大小的一个百分比, 卷增长到这个值以后写操作会失败,禁止卷继续耗费额外资源。
设置TPVV allocation warnings 和allocation limits时, 必须要同时考虑用户数据卷与快照数据占用的空间。快照数据占用的空间等于对base volume上次快照 以来写的数据量。
确定TPVV的allocation warning 和allocation limit thresholds时,可以根据估计的最大写速率来计算快照的数据增长率。
. 如果没有只读快照,并且这个卷不是物理拷贝physical copy或者用于远程复制 Remote Copy, 增长率与最大写速率相同。
. 如果有只读快照,或者这个卷是物理拷贝或用于远程复制,那么增长率是两倍的最大写速率。
. 根据增长率和你希望提前多长时间收到告警来设定allocation warning 和limit thresholds。
使用下面的公式来制定allocation warning threshold:
n的取值是这样定义的:
. 如果没有只读快照,并且这个卷不是物理拷贝physical copy或者用于远程复制 Remote Copy,n=1.
. 如果有只读快照,或者这个卷是物理拷贝或用于远程复制, n=2.
例如,如果一个1TB的TPVV有只读快照 ,最大写速率为每天1GB,你希望在到达allocation limit 之前30天收到告警,用下面的计算告警的百分比:
Virtual Volume Online Conversion
你可以将现有的FPVV转换成TPVV,也可以将TPVV转换成FPVV,这些操作无需中断正常读写,也不需要在主机上进行设置的更改。如果一个TPVV用了大部分的分配的空间,你可能选择将它转换成一个FPVV来增加存储空间。当一个TPVV达到将近80%的容量时,节省空间的优势就让位于性能。另外,将TPVV转换成FPVV可以为其他TPVV释放剩余空间。类似地,如果一个FPVV的存储空间有大部分未使用,你可能选择将它转换成一个TPVV来节约存储空间。
不支持转换远程复制remote copy卷和包含快照的卷。但是,你可以将包含有快照的卷转换,生成一个新的虚拟卷,拥有新的WWN却包含原来的逻辑硬盘与快照 。
可以用命令行或是管理控制台进行转换操作。
将卷由TPVV转换到FPVV需要HP 3PAR Dynamic Optimization license.
将FPVV转换到TPVV需要HP 3PAR Dynamic Optimization Software license 和HP 3PAR Thin Provisioning Software license.
Physical Copies
物理拷贝physical copy是对一个卷的完全复制。物理拷贝将原始的base volume上的所有数据复制到另一个名为目标卷的虚拟卷上。对原始卷与目标卷的任何数据更改都会使它们不再保持同步,可以通过重新同步操作resynchronizing来恢复同步。生成物理拷贝不需要特别的license.
物理拷贝可以按组来生成和管理来降低管理工作量。你可以由多个虚拟卷生成一个物理拷贝的consistent group,将多个物理拷贝集合成一个autonomic groups,像对一个单独的物理拷贝那样进行管理。
物理拷贝只能由一个有足够剩余空间来存放拷贝操作中的写操作的卷来生成。另外,目标卷要满足以下条件:
. 它必须有关联的快照空间
. 至少有源卷大小的用户空间。
. 必须未被映射给主机
NOTE: 如果源卷与目标卷都是TPVV,那只有使用了的空间才被拷贝。
Virtual Copy Snapshots
虚拟拷贝virtual copy是对另一个虚拟卷的快照。你可以对base volumes,物理拷贝或是其他虚拟拷贝生成虚拟拷贝。虚拟拷贝用了 copy-on-write技术,需要HP 3PAR Virtual Copy Software license. 不像物理拷贝那样复制整个卷,虚拟拷贝只记录原始卷中改变的部分。这样允许将原始卷恢复到之前的某个状态。存储允许最多为一个base volume生成500个虚拟拷贝。最多256个虚拟拷贝可以是可读写拷贝。存储中能生成的虚拟拷贝的总数取决于存储的配置。 可以参考 Single Point of Connectivity
Knowledge (SPOCK) website http://www.hp.com/storage/spock.
NOTE: 虚拟拷贝只在虚拟卷一级保持一致,而不是在文件系统或是应用程序一级。换句话说,虚拟拷贝只保存了在生成虚拟拷贝前已在源虚拟卷写入的数据,没有保存在应用程序中和在文件系统缓冲区中还没有回写到硬盘上的数据。
HP提供可选的HP 3PAR Recovery Manager DBA 软件来提供应用程序级别的数据一致性的快照
Virtual Copy Snapshot Relationships
Base volumes总是可读写的,但是虚拟拷贝可以是读写的或是只读的。只读与读写的卷必须是交替的。你只能为读写卷生成只读拷贝,你也只能为只能卷生成读写拷贝。因为base volumes总是读写的,所以只能为base volume生成只读拷贝。参看 Figure 7
参看Figure 8 是一个更复杂的例子。
Copy-on-Write Function
当一个虚拟卷或是快照的源数据卷被写入时,copy-on-write功能将被覆盖的数据保存下来。这些数据被拷贝到与原始的虚拟卷相关联的快照空间中,并且在管理空间中留下指针信息。
参看 Figure 9 ,是一个一系列快照的示例。
上图中:
. S0是对base volume做的第一个虚拟拷贝。.
. S2 是最新的虚拟拷贝.
.每一份拷贝跟踪从这份快照生成以来base VV的数据变化,直到下一份快照生成。
. S1_0可以在S1生成后的任意时间生成。
由base volume派生出的虚拟拷贝的关系可以用树来表示。在Figure9中的示例,base volume BaseVV是起点。本例中每个虚拟拷贝的名字递增1. 拷贝的拷贝在名字上加了一级,本例中,S1的第一个拷贝是S1_0,S1_0的拷贝是S1_0_0.不像物理拷贝生成的自动快照,这些快照没有被存储指定名字。
NOTE: 这个命名规范是推荐的,但是不强制。你可以在生成快照时为每个虚拟卷和虚拟拷贝命名。
生成快照时下列规则会生效:
. 只读与读写快照必须交替。只能为读写卷生成只读快照,也只能为只读卷生成读写快照。
. 对于一个只读的卷,最多可以生成256个读写虚拟拷贝。
. 对一个base volume,最多可以生成500个虚拟拷贝。
. 如果还有子拷贝存在,这个虚拟卷就不能被删除。例如,除非S1_0, S1_0_0,和S1_0_1先被删除,否则不能删除S1.
Copy-of and Parent Relationships
在Figure 9的示例中,有两种不同的树结构:实线箭头显示的是copy-of关系,虚线箭头显示的是父辈parent关系。例如,S0是BaseVV的只读拷贝,S1是S0的Parent。copy-of关系简单地显示快照是由复制其他虚拟卷而来。父辈关系指向管理空间中的内部组织。父辈卷包含有重新构造子卷表示的快照所需的信息。如果父辈卷被修改了,父辈卷可以拥有一个比子卷更新的生成时间。
父辈关系在两种情况下有用:
. 理解虚拟拷贝的性能特性。父辈关系显示了管理空间中为了重新构造一个虚拟卷较早状态的查询路径。一个虚拟拷贝在路径中离base volume越远,就需要越长的时羊获取。 如果一个快照计划要在较长时期内使用,考虑用物理拷贝代替虚拟拷贝。
.理解那些虚拟拷贝会在管理空间满了,copy-on-write数据无法写入的情况下变成陈旧stale状态。一个stale的快照是指不能完全被重新生成的,因为最近的更新没有被包含。 现有的快照及其子辈在写失败时都会变为stale状态。 例如,如果没有空间来写copy-on-write数据,当主机向S1_0写时, S1_0, S1_0_1, S1_0_0 变成stale.
Exporting Virtual Volumes
虚拟卷是唯一对主机可见的数据层。你将虚拟卷进行映射操作,让一个卷与LUN关联,使它可被一台或多台主机访问。这通过生成一个虚拟卷-LUN的对来实现Virtual Volume-LUN pairing (VLUN)。 一个VLUN是由虚拟卷和一个LUN配对,成为VLUN模板或是活跃的VLUN。
VLUN Templates and Active VLUNs
VLUN模板VLUN template建立虚拟卷与 LUN-host, LUN-port,或是LUN-host-port 组合的关联。生成VLUN template时,如果当前的存储状态满足VLUN模板的条件,立刻按模板生成一个或多个活跃的VLUN(active VLUN)。 这些活跃的VLUN可以让虚拟卷映射给主机。 如果当前的存储不满足VLUN模板中的条件,不会生成活跃的VLUN,直到条件满足。
当一个VLUN模板被应用到生成一个或多个活跃VLUN,主机紧接着可以按照模板中的映射规则访问卷。删除与卷关联的VLUN会停止主机对这个卷的访问。删除一台主机的所有VLUN,那主机对所有卷都不能访问。
VLUN Template Types
VLUN模板在虚拟卷与 LUN-host, LUN-port,或是LUN-host-port组合通过映射规则建立关联。一个VLUN模板使虚拟卷映射成为一台或多台主机上的LUN。 这些被主机所访问的LUN,称为活跃VLUN, active VLUNs.
一个VLUN模板可以是下列的一种:
. Host sees 允许一个指定的主机访问一个卷
. Host set 允许这个host set中的任意一个成员访问一个卷。
. Port presents允许任意主机在一个特定端口上访问卷。
. Matched set 允许一个特定主机在一个特定端口上访问卷。
Host Sees
host sees VLUN模板允许一个特定的主机通过任意端口来访问一个虚拟卷。存储使虚拟卷对主机的任意WWN可见了一个LUN,不管对应哪个控制器节点的WWN。 如果主机有不止一个WWN,对每一个WWN都生成活跃VLUN。但是,对任一个单独的主机来说,对一个指定的VLUN只能有一个host sees VLUN模板。
如果在一个已经存在的主机定义中加入一个WWN,所有通过host-sees VLUN模板映射给这台主机的虚拟卷都会增加对新的WWN的映射。但是,如果LUN映射给主机,那么WWN不能从主机的定义中删除。
Host Set
host set VLUN模板允许host set中的任一成员主机访问一个卷。任何加入这个host set的主机自动可访问VLUN,只要不存在LUN ID的冲突。 如果新加入的主机有一个与host set中ID范围重叠的LUN ID,这台主机就看不到LUN,需要指定一个新的LUN ID。 如果host从host set中移除,那么这台主机就失去了host set中的所有访问权限,不再能访问映射给host set的卷。
Port Presents
port presents VLUN模板允许主机通过一个特定的端口来访问虚拟卷。存储使虚拟卷对所有出现在指定控制器节点端口上的主机WWN可见。当这个VLUN模板生效时,连接额外的主机会自动生成额外的活跃VLUN。但是,对每一个port LUN组合,只能有一个port presents VLUN模板存在。同一个虚拟卷可以在同一个或不同的端口上映射为不同的LUN。
Matched Set
matched set VLUN模板是 host sees和port presents的组合。
matched set VLUN允许一个特定的主机在一个特定的端口上访问一个虚拟卷。 对任一个LUN,对一个host-port组合只能有一个matched set VLUN模板。