SVC实施

更新时间:2024-06-20 04:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. SVC结构

当今实施块级聚合和虚拟化主要有2个方法: ? 对称:带内设备

SAN设备位于数据路径中,所有I/O数据流通过设备。SVC使用的就是对称虚拟化。 ? 非对称:带外设备或者基于控制器

SAN由一对或者多对SVC硬件节点管理,称为cluster。对SAN网络进行zone划分,使得SVC能看见存储子系统,host能够看见SVC。存储控制器能在SVC和直接主机访问之间共享,只要同一个LUN不共享。SVC能连接至多4个SAN fabric。

1

SVC集群节点连接到SAN网络,将logical disk(virtual disk)或者卷呈现给主机。这些卷从存储子系统的LUNs(Mdisk)创建。上图中有2个zone:

- -

Host zone,host能够看见SVC节点

存储zone,SVC节点能够看见存储子系统的LUNs

Host不允许直接操作LUNs,所有数据传送都是通过SVC节点。

1.1. SVC组件

节点

每个SVC硬件单元称为节点,节点为卷,缓存,copy服务等功能提供虚拟化。SVC节点成对部署,多对组成一个cluster。一个cluster可以由1到4个SVC节点对组成。Cluster中其中一个节点称为配置节点,配置节点为cluster管理配置,如果这个节点失效,cluster将选择一个新的节点成为配置节点。因为节点是成对安装,形成一个冗余配置。

I/O Groups

每对SVC节点也称为I/O Group。一个SVC cluster能有1到4个I/O组。呈现给主机的卷是由cluster的一个I/O组提供。当服务器对自己的某个卷进行I/O操作,该卷的所有I/O定向到一个指定的I/O组,且由I/O组的相同节点处理,这个节点被称为该卷的优先节点。

2

I/O组的2个节点都作为各自卷的优先节点。每个I/O组至多2048个卷,2个节点都是作为互备节点,如果需要的话,一个节点可以接管搭档节点的I/O负载。因此,在SVC环境中,对一个卷的I/O处理能在I/O组的2个节点之间切换,在host中使用多路径软件来处理failover。

SVC I/O组连接到SAN网络,因此所有应用服务器能从I/O组访问卷。每个I/O组能定义至多256个服务器。如果需要的话,在一个SVC cluster中服务器能映射到多个I/O组,因此能够访问各个I/O组的卷。在I/O组之间可以移动卷来重新分布负载,移动过程中不能同时进行主机I/O,将需要一个简短的中断来重新映射主机。

Cluster

Cluster由1到4个I/O组组成。每个cluster能支持的卷至多8192个,或者每个cluster支持的最多Mdisk为32PB。

所有配置,监控和服务管理都是在cluster级别进行,配置设置值被复制到cluster中的所有节点。为了完成以上任务需要为cluster设置一个管理IP地址。

MDisks

SVC cluster和I/O组看到底层存储子系统提供的LUNs称为Mdisks,Host看不见MDisk,看到的是逻辑盘,称为virtual disk或者卷。MDisk存放在存储池中,在池中划分成extent,extent大小从16M到8192M,由SVC管理员定义。一个MDisk最大为1PB,一个cluster支持多达4096个MDisk,MDisk在任何时候都是下面3模式中之一:

? Unmanaged MDisk

Unmanaged MDisk不是任何存储池的成员,SVC不会写数据到unmanaged MDisk。 ? Managed MDisk

Managed模式MDisk是存储池的成员,划分成extent,卷是由extent组成。 ? Image mode MDisk

Image模式提供从MDisk到卷的直接块对块的转换。Image模式的使用场景: -

Image模式可以虚拟化已经包含数据的Mdisk,数据是由直连存储的host写入而不是通过SVC。使用image模式可以进行数据迁移。 -

Image模式可以允许SVC卷使用由底层存储提供的本地copy服务功能。为了避免数据丢失,禁用卷的SVC缓存 -

通过image模式可以从SVC中迁移数据到非SVC环境,即host直接连接存储。

每个MDisk有一个在线路径数,表示访问MDisk的节点数量。Maximum count是cluster检测到最大路径数,current count为当时cluster检测到的数量。

Quorum disk

3

Quorum disk是一个含有cluster专用保留区域的MDisk。当发生SAN故障后cluster中仍然有一半节点可用,此时Cluster使用quorum disk to break a tie。

Disk tier

由于SVC cluster的Mdisk所在的disk或RAID类型不同, MDISK可能有各种属性。因此每个Mdisk有个存储层属性,默认为generic_hdd。从SVC V6.1对于SSD有个新的层属性generic_ssd。

Storage pool

一个存储池可以至多128个MDisk组成,一个cluster能管理128个存储池。池大小可以动态改变,一个MDisk只能是一个存储池的成员,image mode卷除外。

存储池的每个Mdisk划分成一定数量的extent,extent大小在存储池创建时由管理员决定,以后不能修改。Extent大小在16MB到8GB之间。

一个cluster中的所有存储池最好使用相同的extent大小,这是在2个存储池之间进行卷迁移的首要条件。如果存储池的extent大小不同,必须使用卷镜像来copy卷。一个cluster中的extent数量最多为2^22=4百万,因此SVC集群的总容量是基于extent的大小,如下表所示:

4

1.2. Volume

卷是SVC提供给host的逻辑盘。有3中类型的卷:striped,sequential,image,这些类型是由存储池中extent的分配方式决定。

? Striped卷的extent是存储池中以round_robin方式从每个Mdisk中分配 ? Sequential卷的extent是连续的从Mdisk中分配 ? Image模式是一对一的extent映射

一个卷最大尺寸为256TB,一个SVC集群支持高达8192个卷。卷有以下属性: ? 卷可以创建和删除

? 卷可以resize(扩展或收缩)

? 卷的extent可以在运行时迁移到另外的MDisk或者存储池

? 卷可以以全分配或者thin-provisioned方式创建,这2个模式在运行时可以互相

转换

5

? 卷可以存放在多个存储池(mirror) ? 卷可以进行长距离的同步或者异步镜像 ? 卷可以使用flash copy

卷有2个模式:image mode和managed mode,对于managed模式卷使用striped和sequential方式。

1.2.1. Managed mode volume

每个卷的extent映射到一个Mdisk的extent。

Figure2-6显示一个卷由V0到V7的extent组成,每个extent映射到Mdisk A,B,C的extent,由Mapping table来存储映射关系。

存储池中extent分配算法:如果存储池由不止一个MDisk组成,那么在进行extent分配时候采用round-robin算法;如果其中有一个MDisk没有剩余extent时,在轮到这个MDisk的时候round-robin算法会跳到下一个有空余extent的MDisk。

当创建一个新卷时,分配给卷的extent的第一个Mdisk采用伪随机方式,而不是简单的采用round_robin来选择下一个Mdisk。由于round_robin算法的“striping effect”,可能导致大量卷的第一个extent位于同一个Mdisk,进而降低性能。

6

1.2.2. Cache mode volume

在正常条件下,卷的读写数据是存放在优点节点的缓存中,同时将写数据镜像copy到同一I/O组的搭档节点。创建卷时也可以指定不使用缓存,这样I/O操作直接传送到存储子系统。

Having cache-disabled volumes makes it possible to use the native copy services in the underlying RAID array controller for MDisks (LUNs) that are used as SVC image mode volumes. Using SVC copy services rather than the underlying disk controller copy services gives better results.

1.2.3. Mirrored volume

镜像卷提供了一个简单的RAID1功能,也就是一个卷能有2份物理数据,因此其中一份数据的MDisk失效而不可访问时,卷仍然在线,可以访问。

镜像卷的2个copies可以分布在不同的存储池或使用image模式copy。镜像卷可以加入Flash Copy,Remote Copy。

对已有一个copy的卷,可以再加第二个copy,或者从已经有2个copy的卷中移除一个。

一个新创建的,没有格式化的2-copy卷起始位于非同步状态,主COPY定义为fresh,次copy为stale。同步过程将更新次copy直到全同步,这个过程使用默认的synchronization rate或者创建/修改卷时指定的一个rate。镜像卷的同步状态记录

7

在quorum disk中。

如果2-copy镜像卷创建时指定format参数,2个copies并行方式格式化,当2个copies的同步操作完成卷就处于在线状态。

如果镜像卷扩展或收缩,所有的copies也同样扩展或收缩。

如果用户不要求读稳定性,可以选择“no synchronization”选项。

对于不处于同步状态的copies,为了最小化重新同步的时间要求,只有256KB grains that have been written to since the synchronization was lost are copied。这个方式称为增量同步,只有修改过的grains需要copy来恢复同步。 重要:一个非镜像卷可以从一个地方迁移到另外一个地方,只需简在目的地增加一个copy,等2个copy同步完成,移除原来的copy0,这个操作可以随时停止。2个copy能放在不同extent大小的存储池。 对于2-copy卷,一个称为primary copy。如果主copy可用且同步的,对卷的读是定位在主copy上,用户在创建卷时可以选择主copy,或者以后修改。将主copy放在高性能控制器上将提高卷的读性能。如果一个copy位于低性能控制器上,写性能是受限的,因为只有2个copy的写数据都完成才认为写成功。

镜像卷需要检查是否所有copy是一致的,如果当从一个copy进行读数据遇到介质错误,它将会使用其他copy上数据进行修复,这个一致性检查是与主机I/O异步执行的。

镜像卷以每256KB 1bit的速率消耗位图空间,也就是1MB位图空间支持2TB镜像卷。位图空间默认分配为20MB,支持40TB镜像卷。如果所有512MB可变位图空间全部分配给镜像卷,可以支持1PB镜像卷。 重要:如果没有quorum disk可用,镜像卷会离线,因为镜像卷的同步状态是记录在quorum disk中的。

1.2.4. Image mode volumes

Image mode volumes用于将直接映射给服务器的LUNs迁移到SVC中。Image模式使卷和MDisk间有个一对一的映射。Image模式卷有一个最小尺寸,为一个数据块(512bytes),且总是占据至少一个extent。

一个image模式MDisk只能映射到一个image模式卷,卷的大小必须等于image模式MDisk的大小。当创建image模式卷时,指定的MDisk必须是“unmanaged”模式且不是存储池的成员。在创建完image模式卷后MDisk成为存储池(Storage pool_IMG_xxx)的成员。

SVC支持managed模式卷转化为image模式卷,反之亦然。

一个image模式MDisk总是与一个卷相关联,如果image模式MDisk不是MDisk Group的extent大小的整数倍,那么最后一个extent将是部分的。Image模式卷不能

8

作为quorum disk,不会有任何SVC元数据extent分配给它。

将image模式MDisk放在一个专用存储池,使用一个专用的名称(例如Storage pool_IMG_xxx)。所有SVC的copy服务功能可以应用于image模式卷。

1.2.5. Thin-provisioned volumes

卷可以配置为thin-provisioned或全分配。thin-provisioned卷的读写与全分配方式相同。当创建thin-provisioned卷时,需要制定2个参数:从存储池分配给卷的实际物理能力和主机的可用虚拟能力。全分配卷的这2个值是相同的。

实际能力决定了初次分配给卷的MDisk extent的数量;虚拟能力是主机服务器和SVC组件(例如Flash Copy,Cache,Remote Copy)看到的大小。实际能力用于存储用户数据和元数据,可以指定为一个绝对值或者虚拟能力的百分比。

当创建thin-provisioned卷时,实际能力的一小部分用来存放初始元数据。卷的颗粒度为grain,grain大小为32k,64k,128k,256k。grain用来存放卷的元数据和用户数据。写I/O到thin-provisioned卷的grain,且grain之前没有被写过数据,那么grain将会存储元数据和用户数据;写I/O到thin-provisioned卷的grain,且grain之前写过数据,则更新grain中数据。

9

每个grain需要存放元数据,意味着I/O效率将比全分配方式的卷低。元数据不会超过用户数据的0.1%。

Thin-provisioned volume format:Thin-provisioned卷不需要格式化。当一个写I/O需要进行空间分配时,grain在使用前先清零。 如果卷不是image模式,thin-provisioned卷的实际能力可以修改。增加实际能力使卷存放更多的数据和元数据。如果初始分配太多的实际能力,实际能力可以通过减少来释放空余存储。

Thin-provisioned卷可以配置为autoextend,使SVC能够随着卷的空间需求,自动给卷增加一定量的额外实际能力。自动扩展会维护一定量的没有使用的实际能力,这个量称为contingency capacity。在卷创建时contingency capacity设置为实际能力大小,如果用户修改实际能力,contingency capacity重置为已使用能力与实际能力之间。对于没有使用自动扩展特性的卷,contingency capacity为0。

自动扩展不会使实际能力扩展超过虚拟能力。实际能力可以手工扩展到more than the maximum that is required by the current virtual capacity,contingency capacity会重新计算。

为了支持thin-provisioned卷的自动扩展,存储池可配置能力预警值。当存储池的已使用能力超过warning capacity,产生一个告警事件。例如指定预警值为80%,当空余能力为20%时将产生告警事件。

Thin-provisioned卷能转换为全分配卷,反之亦然。 Thin-provisioned卷性能:Thin-provisioned卷需要额外的I/O操作来读写元数据,使得SVC节点产生额外的负载。因此,对高性能应用或高I/O写的负载避免使用 10

thin-provisioned卷。

1.3. SVC Cluster

集群是一组共同提供资源给用户的服务器集合,客户不会感知集群的底层物理硬件。如果集群中的一个节点失效或者太忙而不能响应请求时,请求会透明的传送给其他可用节点。

SVC集群是一组可以高达8个节点的集合,管理员可以单点控制这些节点来进行配置和服务管理。

所有活动节点知道它们是集群的成员,这是很重要的一点。特别是在split-brain场景中,当个别节点失去与其他节点的联系时,有一个可靠的机制来决定哪些节点组成活动的集群。最差的场景就是一个集群分裂为2个单独的集群。

在SVC集群内,voting set和quorum disk负责保持集群的完整性。如果有节点加入集群,它们加入到voting set;如果有节点移除,从voting set中移除。SVC集群实施一个动态quorum,在丢失一些节点后,如果集群能继续运行,集群将调整quorum需求,使得以后可以容忍节点失效。

在一个集群中的lowest Node Unique ID成为boss节点,由它决定是否节点能组成集群操作。这个节点最多2个集群IP地址来进行集群的管理。

1.3.1. Quorum disk

集群使用quorum disk有2个目的:

? 当集群遇到SAN错误,还有一半节点可用时,用作tie breaker ? 保存集群配置数据的copy

Quorum disk需要256M以上保留空间。在一个集群中只有一个活动quorum disk,然而有3个MDisk作为quorum disk的候选者。集群从quorum disk候选者池中自动选择活动quorum disk。

当MDisk加入到SVC集群中,SVC检查MDisk是否能用作quorum disk,如果满足要求,SVC将加入集群的前3个MDisk用作quorum disk候选者,其中一个作为活动的quorum disk。 备注:成为quorum disk的LUN必须满足以下条件: ? 存储子系统提供的LUN必须支持quorum disk ? 使用svctask chcontroller -allow_quorum yes命令来手工允许成为quorum disk

11

? 必须是managed模式 ? 必须有足够的空余extent来存放集群信息 ? 集群内节点必须都能看见

如果可能的话,SVC将把quorum disk候选者放在不同的存储子系统上。在quorum disk初始分配完成后通过svcinfo lsquorum命令查看。

当quorum disk选定以后就固定了,其他MDisk要成为quorum disk需要满足以下条件之一:

? 当管理员使用命令svctask setquorum来指定一个MDisk成为quorum disk ? 当quorum disk从存储池删除 ? 当quorum disk变更为image mode 备注:没有quorum disk的SVC集群严重影响操作,缺少可用的quorum disk来存储元数据会导致无法迁移。另外没有可用的quorum disk导致镜像卷离线,因为镜像卷的同步状态记录在quorum disk上。

在集群的正常运行期间,节点能够互相通信。如果一个节点空闲,那就会发送一个心跳信号来确保与集群的连通性。如果一个节点失效,那么这个节点上的负载全部被其他节点托管,直到这个节点重启来重新加入集群。

当节点分布在不同sites,集群节点配置如下:

? Site1 包含一半SVC集群节点和一个quorum disk候选者 ? Site2 包含一半SVC集群节点和一个quorum disk候选者 ? Site3 包含一个激活的quorum disk

尽量将Quorum disk分布在不同的存储子系统中。即使只有一个存储子系统,也尽量将Quorum disk分布于不同的存储池,利用不同存储池来自不同阵列的分配方式,使Quorum disk位于不同的阵列,防止因为阵列失效导致所有3个Quorum disk都失效。

Quorum disk查看:svcinfo lsquorum

Quorum disk移动:svctask chquorum

12

如图所示quorum index2对应的quorum disk从ITSO-4700的MDisk2移动到了ITSO-XIV的MDisk9。

1.3.2. Cache

存储缓存的主要目的就是提高I/O响应时间。2145-CF8节点配合SVC6.1提供每个节点24GB内存,每个I/O组48GB。节点内存能用于读或写缓存,写缓存的大小限制为12GB,根据节点的I/O情况,24GB内存能够全部用于读缓存。

缓存分配是以4KB segment为单位。

当服务器进行写数据时,优先节点先保存数据在自己的缓存中,然后copy到备用节点,copy完成之后才通知服务器写操作完成。

如果卷在最近2分钟内没有接受到写更新,则自动将所有修改的数据destaged to disk。

如果I/O组的一个节点失效,备用节点将清空它的写缓存,运行在操作模式,也就是write-through模式。运行在write-through模式的节点直接写数据到磁盘,然后发送一个I/O完成状态信息到服务器。运行在这个模式下I/O组的性能降低。

写缓存是以存储池进行划分的,这个特性限制了集群内一个存储池能够分配的最大写缓存量。下表显示了集群中单个存储池使用的写缓存上限:

当外部电源中断时,物理内存被copy到节点内置盘上的文件中,这样在电源恢复供应时能恢复数据。不间断电源确保足够的电力来完成这样的dump操作,在dump内存数据到盘上后,SVC节点关闭。

13

2. SVC计划和配置

2.1. 逻辑设计 2.1.1. SAN Zoning

SAN fabric可以配置2个或至多8个SVC节点,组成SVC集群。SVC节点,存储子系统,服务器连接到SAN fabric,在SAN fabric中进行zone划分,使得SVC能看见各自节点和存储子系统,服务器能看见SVC。服务器是不能直接看见或操作存储子系统的LUNs。在一个集群内的SVC节点必须能够互相通信,且能够看见集群内所有存储。

SVC6.1支持2Gbps,4Gbps,8Gbps的FC fabric。在一个存在多种速度交换机的fabric中,最好是将SVC和存储子系统连接到最高速度的交换机。

SVC集群中的所有SVC节点连接到同一个SAN,由SVC将卷呈现给主机,这些卷从存储池创建,存储池是由存储子系统提供的MDisk组成。在SAN网络中必须有3个zone: ? SVC集群zone

? 主机zone:host访问SVC集群中的存储 ? 存储zone:SVC访问存储子系统

zone配置遵循以下指南:

14

? LUNs(MDisk)必须是单个集群独占访问,不能与其他SVC集群共享 ? 在一个集群内的所有节点port必须以相同的速度运行

? ISLs不能用于SVC集群内节点之间通信或者节点对存储控制器的访问

? 相似主机的HBA卡或者同一主机的相似HBA卡应该划分在各自的zone中。例如,如

果有AIX和microsoft主机,那需要划分在各自zone。这是一个SAN操作性问题,不是专门针对SVC的。

? Host zone只能包含一个initiator(host端的HBA卡),SVC节点口则根据需要进行配置。

可以使用svcinfo lsfabric命令生成报告,显示节点和存储控制器,主机的连接。 Attention: ? 在集群内的节点间采用ISL通信对集群有负面影响,由于SVC集群需要依赖这些链路维护心跳和集群管理服务 ? 在SVC节点访问存储之间使用ISL会导致port congestion,影响SAN的性能和可靠性 ? 集群间通信使用不同的port speed导致port congestion,因此不支持混合的port speed 2.1.2. SVC集群配置

为了确保SVC的高可用性,在设计SVC的SAN网络时考虑以下事项:

? 集群中所有节点必须位于相同的LAN网段。如果计划用每个节点的第二个网口,则可

以配置与网口1不同的LAN网段。也就是所有节点的网口1在一个网段,网口2在另外网段

? 为了保证应用的连续性,SVC节点总是成对部署,如果一个节点失效,剩下节点运行在

降级模式,但是仍然是有效配置。剩下节点运行在write-through模式,意味着数据直接写到存储子系统(写缓存不可用)。

? 在SVC节点与交换机之间采用光纤连接,运行在2/4/8Gbps,根据SVC和交换机硬

件决定。SVC节点是auto-negotiate

? SVC节点port必须连接到FC fabric,SVC与host或存储子系统的直连是不支持

? 2个SVC集群不能访问存储子系统中相同的LUN

? SVC使用3个MDisk用作quorum disk,最好是每个quorum disk位于不同的存

储子系统。

分离集群配置

? 分离集群配置的I/O组的2个节点之间的最大距离为10KM

? 使用分离集群配置结合卷镜像可以实现高可用性。在镜像卷配置后使用svcinfo

15

lscontrollerdependentvdisks验证位于不同存储子系统的镜像卷 ? 当实施分离集群配置时,quorum disk的分配可以采用如下配置:

- - - Site1 包含一半SVC集群节点和一个quorum disk候选者 Site2 包含一半SVC集群节点和一个quorum disk候选者 Site3 包含一个激活的quorum disk 备注:在同一I/O组内节点间的ISL是不支持的,不管是否采用分离集群配置。

2.1.3. 存储池配置

SVC中的MDisk来自于存储子系统的LUNs,可以是managed或unmanaged模式,managed MDisk表示已经分配给存储池:

? 存储池是MDisk的集合,一个MDisk只能属于一个存储池 ? SVC支持128个存储池

? 存储池没有对卷的限制,然而一个I/O组支持的卷为2048,集群为8192 ? 卷只属于一个存储池,除非卷在存储池之间进行镜像

SVC支持的extent大小为16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192 MB,在SVC6.1才支持4096和8192,当创建存储池是需指定extent大小,不能进行修改。如果需要修改extent大小,只能删除存储池,重新创建。在存储池中的所有MDisk都有相同的extent大小。

存储池配置考虑:

? 集群最大存储能力是与extent size有关:

-

16MB extent=64TB,强烈建议使用128/256MB。IBM Storage Performance Council (SPC)基准值为256MB - -

选择extent大小,所有的存储池使用相同的extent

对于不同extent大小的存储池是不能进行卷迁移的,除非使用卷镜像来创建卷的copy

? 存储池可靠性,可用性,服务性(RAS)考虑

-

如果确定一个host的卷只位于一个存储池的话,可以创建多个存储池,使得不同的host访问不同的存储池。如果存储池离线,则只影响部分host。 -

如果不需隔离主机与存储池,可以创建一个大存储池。创建一个大存储池前提是物理盘有相同的大小,速度和RAID级别 -

如果有一个MDisk不可用,存储池就会离线,哪怕MDisk上没有数据。不要把所有MDisk放入一个存储池

16

- -

至少创建一个单独的存储池,用于image模式卷 确保提供给SVC的LUNs没有任何主机PR属性

? 存储池性能考虑

如果需要隔离不同的工作负载,则可以创建多个存储池。 ? 存储池和SVC缓存关系

2.1.4. Virtual disk配置

一个vdisk(卷)是存储池的一员。当创建卷时,首先确定想要达到的性能,可用性和成本要求,然后选择存储池。

? 存储池中定义卷是由存储子系统的哪个MDisk提供 ? I/O组定义哪个SVC节点提供对卷的I/O访问

卷的分配是基于以下考虑:

? 将卷均匀的分布在I/O组和节点之间来优化性能 ? 选择存储池来满足对卷的性能要求 ? I/O组考虑

-

创建卷时,卷与I/O组的一个节点关联。默认情况下,每次创建新卷时,采用round-robin算法来关联节点,也可以指定一个优先访问节点。 -

即使每个卷有8个路径,所有的I/O流量只流向优先节点,也就是只有4个路径是被SDD真正使用的,其他4个路径只是作为优先节点失效后才使用或者concurrent code upgrade is running

? 创建image模式卷

-

当Mdisk上已经有数据时可以使用image模式卷。当创建image模式卷时,它直接与所在的MDisk关联,因此卷的logical block address(LBA)=MDisk LBA。Image模式卷的大小默认等于MDisk大小 -

当创建image模式disk时,MDisk必须是unmanaged模式,不属于任何存储池,且大小不能为0。Image mode volumes can be created in sizes with a minimum granularity of 512 bytes,and they must be at least one block (512 bytes) in size。

? 创建连续或条带策略的managed模式卷

当创建连续或条带策略的managed模式卷时,必须确保卷所在的MDisk的extent是没有数据的,且这些MDisk集大小是大于等于卷的大小。在MDisk上可能有足够的extents,但是没有足够大的连续块来满足要求。 ? Thin-provisioned卷考虑

-

当创建Thin-provisioned卷,需要理解应用程序对卷的利用率

17

- 对Thin-provisioned卷有2种操作模式

? 自动扩展卷,应用程序可能导致卷自动扩展直到消耗完存储池的所有空间。 ? 非自动扩展卷有固定量的存储,用户必须监控卷来分配额外的能力。应用程序

至多只是将卷使用完全。

- 根据实际能力的初始大小,设置grain大小和告警线。如果卷离线,可能是缺少可用的物理存储来进行自动扩展,也可能是非自动扩展卷没有及时进行卷扩展,这样数据保留在缓存中,产生一定的危险。

- Grain分配单元大小可以为32KB,64KB,128KB,256KB,一个小的grain size能够充分利用空间,但是会产生一个大的directory map,导致性能下降

- Thin-provisioned卷由于需要directory访问故需要更多的I/O。对于随机70%读30%写的负载,一个Thin-provisioned卷将需要为每个用户I/O产生大约一个directory I/O,性能比普通卷的写数据降低一半

- Directory是two-way write-back-cached (just like the SVC fastwrite cache),因此个别应用程序可以提高性能

- -

Thin-provisioned卷需要更多的CPU处理

Thin-provisioned卷有个特性称为“zero detect”,当使用卷镜像来转换一个全分配卷为Thin-provisioned卷时能够回收没有使用的已分配空间

? 卷镜像指南

- - -

创建2个单独的存储池来为镜像卷分配空间 镜像卷的存储池最好来自不同的存储子系统

如果可能,使用具有相同属性的MDisk组成的存储池,否则卷性能会受到性能差的MDisk的影响

2.1.5. Host mapping(LUN masking)

对于主机和应用服务器,按照以下指南:

? 对于使用2个HBA的主机对于同一个LUN能看见多个路径,使用zone配置来限制路

径数在2-8个之间,最好是4个路径。SVC支持的多路径软件为SDD,MPIO等,参见http://www-03.ibm.com/systems/storage/software/virtualization/svc/interop.html

? 从主机到I/O组节点之间路径不能超过8个,即使8个路径并不是多路径软件的最大

值(SDD支持32个路径)。为了限制路径数, the fabrics must be zoned so that each host FC port is zoned to no more than two ports from each SVC node in the I/O Group that owns the volume。 Notes: Following is a list of the suggested number of paths per volume: (n+1

18

redundancy) - - With 2 HBA ports: zone HBA ports to SVC ports 1 to 2 for a total of 4 paths With 4 HBA ports: zone HBA ports to SVC ports 1 to 1 for a total of 4 paths Optional: (n+2 redundancy) - With 4 HBA ports: zone HBA ports to SVC ports 1 to 2 for a total of 8 paths ? 如果主机有多个HBA口,每个口必须zoned to a separate set of SVC ports

to maximize high availability and performance

? 配置超过256个主机时,需要在SVC中配置主机到I/O组的映射关系。每个I/O组

支持最多256个主机,因此在一个8节点SVC集群中最多支持1024个主机。 ? Port masking,使用prot mask来控制host能访问的节点port。

3. 初始化集群配置

在SVC硬件安装完成后进行SVC集群的初始化配置: 1. 选择一个节点为集群中成员,进行初始化配置

2. 在硬件面板上使用up和down按钮,直到显示Action 3. 按下select按钮

4. 使用up和down按钮,直到显示New Cluster IPv4? 5. 按下select按钮来创建新集群 6. 再次按下select按钮来修改IP

7. 使用up和down按钮来修改IP地址的第一段 备注:对于IPv4,按住up和down按钮是以10为单位来增加和减少。 8. 使用right按钮移动到下一段,同样使用up和down按钮来设置 9. 重复步骤7来完成IP地址设置 10. 当IP地址设置完成,按下select 11. 按下right按钮,显示为IPv4 Subnet: 12. 按下select

13. 设置掩码,与IP地址设置同样操作 14. 当掩码设置完成,按下select

15. 按下right按钮,显示为IPv4 Gateway: 16. 按下select

17. 设置网关,与IP地址设置同样操作 18. 当网关设置完成,按下select

19

19. 使用right和left按钮来查看IP设置。在设置完成后,按下right和left按钮

直到显示Confirm Created?,按下select 20. 在完成以上配置后,在显示面板上显示

- -

集群配置向导:

1. 在浏览器输入初始化配置中IP地址http://svcclusteripddress/ 2. 出现欢迎界面,输入默认superuser密码:passw0ord 3. 选择接受协议,NEXT

Cluster:显示在第一行

一个临时的系统分配的集群名称显示在第二行

在完成集群初始化配置后,可以使用管理界面GUI来加节点到集群中。

4. 在Name,Date,and Time窗口设置

- - -

集群名称:大小写敏感,不能以数字开头 时区设置

日期设置,如果使用NTP服务器,选择“Set NTP Server IP Address”来输入NTP服务器的IP地址

20

5. 出现“Change Date and Time Settings”窗口

6. 出现“System License”窗口,输入授予权限的能力,NEXT

21

7. 出现“Configure Email Event Notification”,如果不配置,直接NEXT

8. 此时可以加节点到集群中。

22

点击一个空节点位置,设置节点名称,点击Add Node:

弹出窗口如下:OK

23

在所有节点都加入集群中后点击Finish 9. 集群更新操作窗口

10. 至此集群创建完成,可以进行集群的管理。

配置服务IP地址:

配置这个IP地址可以在节点上使用Service Assistant Tool,如果节点有问题,可以通过服务IP地址来查看详细状态和错误报告,管理节点服务。 1. 选择Configuration→Network 2. 选择Service IP addresses

24

3. 选择节点,点击服务IP地址设置端口

4. 输入IP地址,网关和掩码,点击OK来完成设置。

4. Host configuration

4.1. SVC设置 4.1.1. FC和SAN设置

Host使用Fibre Channel (FC)来连接SAN交换机而不是直接连接到SVC节点。为了保证高可用性,使用2个冗余的SAN fabric,因此每个host至少2个HBA卡,每个HBA卡连接到其中一个fabric的SAN交换机(假定每个HBA卡为单口)。

在SAN fabric中SVC支持3个interswitch link(ISL),意味着服务器到SVC

25

能跨越5个FC链路,采用长波SFPs的话每个链路可以达到10KM。SVC节点必须采用短波SFPs,因此与SAN交换机距离最大为300m,如下图:

如图所示,SVC节点1与host2距离超过40KM。

对于高性能服务器,原则上避免ISL hops,也就是将服务器与SVC连接到相同的SAN交换机。当连接服务器到SVC按照以下规则:

? 每个I/O组至多256个host,每个集群为1024个 ? 每个I/O组至多512个唯一的主机WWPN号

Host zone配置规则: ? 同质HBA port zones

主机zone配置中,在一个zone中必须包含相似的HBA卡和相似的主机类型。例如AIX和NT服务器必须在各自单独的zone,Qlogic和Emulex HBA卡在单独的zone。 ? HBA to SVC port zones

Host的每个HBA port与2个SVC port放在一个zone,这2个SVC port分别来自2个SVC节点。不要将2个以上的SVC port与HBA在一个zone中,因为这样导致超过推荐路径数。

? 每个LUN的最大路径数

从SVC节点到主机的路径数不能超过8个,对大多数配置,host到I/O组提供的卷为4个路径就足够了。

? Balanced Host Load across HBA ports

为了获得最佳性能,确保每个主机口与单独的一组SVC口在一个zone中。 ? Balanced Host Load across SVC ports

每个SVC口有相同数量的主机口。

26

图中每个服务器包含2个单口的HBA,为4路径方案。

? 每个I/O组均匀的分布主机,每个主机集的主机连接到相同的一组SVC口。 ? 主机集1总是与I/O组2个节点的P1和P4口在一个zone中,主机集2则是与P2

和P3口在一个zone中。Port group为每个SVC节点的一个port。 ? 为每个I/O组的port group创建别名

? Fabric A:IOGRP0_PG1→NI_P1;N2_P1,IOGRP0_PG2→N1_P3;N2_P3 ? Fabric B:IOGRP0_PG1→N1_P4;N2_P4,IOGRP0_PG2→N1_P2;N2_P2 ? 用主机WWPN与PG别名来创建主机zone

尽可能用最小数量的路径来满足足够的冗余级别。所有的路径必须使用主机的多路径驱动来管理,假设一个主机连接4个口到SVC,每个卷是8个路径,125个卷映射到这个服务器的话,多路径驱动不得不支持处理1000个活动路径。

8个路径方案:

27

4.1.2. Port mask 4.2. AIX配置

AIX主机识别SVC卷的主要配置步骤: 1. 安装HBA卡 2. 检查OS版本

- AIX V4.3.3 - AIX 5L? V5.1 - AIX 5L V5.2 - AIX 5L V5.3 - AIX V6.1.3 3. 连接AIX主机到SAN交换机 4. 配置SAN交换机zone 5. 安装2145主机附属支持包 6. 安装配置SDDPCM

7. SVC完成逻辑配置,包括定义主机,卷和mapping 8. 运行cfgmgr来发现卷 备注:单个主机或者LPAR内的FC port最多为4个,因为连接到SVC的最多port个数 28

不能超过4个。 4.2.1. 配置fast fail和dynamic tracking

执行以下步骤:

1. 对每个adapter设置FC SCSI I/O Controller Protocol Device

2. 启用动态跟踪

以上可以一步完成

chdev –l fscsi0 –a ?fc_err_recov=fast_fail dyntrk=yes? 备注:fast_fail和dyntrk属性在adapter删除和重新配置后不会保留,因此,如果adapter被删除,然后重新配置到系统中,这些属性将丢失,需要重新配置。

列出已安装的FC卡

通过使用lscfg –vpl命令显示WWPN号和其他属性包括firmlevel,WWPN用Network Address表示。也可使用fcstat fcs0

29

4.2.2. 安装2145主机附属包和SDDPCM

? 安装2145主机附属包

为了在主机中将SVC卷配置为2145设备类型,必须在cfgmgr之前安装2145附属包。如果在没有安装2145附属包之前运行cfgmgr则LUNs被识别为“Other SCSI Disk Drives”,SDDPCM不能识别这些卷。为了修改设备类型,hdisk需要使用命令rmdev –dl hdiskX删除,然后重新运行cfgmgr。

主机附属包安装步骤: 1. 访问以下站点:

http://www.ibm.com/servers/storage/support/software/sdd/downloading.html

2. 选择 Host Attachment Scripts for AIX 3. 选择 Host Attachment Script for SDDPCM

4. 下载AIX host attachment fileset for your multipath device driver

package: devices.fcp.disk.ibm.mpio.rte 5. 根据安装说明或readme文件来安装脚本

? 安装SDDPCM

Subsystem Device Driver Path Control Module (SDDPCM)是一个路径控制模块,提供路径管理功能和错误恢复算法。当存储设备配置为多路径设备时,SDDPCM作为AIX MPIO FCP(Fibre Channel Protocol)设备驱动的一部分进行加载。

30

AIX MPIO设备驱动自动发现和配置所有存储设备路径,SDDPCM管理这些路径,提供: ? 存储I/O的高可用性和负载均衡 ? 自动路径切换功能

? 并发下载存储设备的licensed machine code ? 防止单点失败

在DS系列的双控制器存储子系统中,SDDPCM能够区分LUN的优先路径: ? 在主控制器(优先控制器)上的路径 ? 备用控制器上的路径

对于这种主备双控制器的存储设置,I/O只发送给主控制器。因此,当SDDPCM选择I/O路径时,它会选择只连接到主控制器的路径。如果没有连接主控制器的路径可用,SDDPCM会改变LUN的优先控制器给备用控制器,切换原先备用路径为主路径,并选择这些新路径来发送I/O。

备注:SDD和SDDPCM在同一服务器上是互斥的。SDDPCM支持最多1200的设备,每个设备最多16个路径。然而,对于round_robin,load_balance路径选择算法,每个设备超过4个路径可能会影响性能。

31

SDDPCM软件下载:

http://www-304.ibm.com/systems/support/supportsite.wss/supportresources?brandind=5000033&familyind=5329528&taskind=2

安装之前确保AIX满足SDDPCM的安装条件。

下例显示SDDPCM下载到/tmp/sddpcm目录,解压缩,使用inutoc命令生成dot.toc文件(.toc),这个文件是installp命令需要的,然后通过installp命令来安装SDDPCM:

lslpp命令检查是否安装成功

在安装完成SDDPCM后重启系统,验证SDDPCM server(pcmsrv)是否自动启动,如果pcmsrv自动启动,lssrc –s pcmsrv输出如下:

NNN:进程ID

Status:Active表示自动启动,如果不是的话,status应该为Inoperative

从SDDPCM3.0以后版本,AE server加入到SDDPCM中。lssrc –s AE输出如下:

32

? 使用SDDPCM来配置卷

查询WWPN号

下图显示lshost和lshostvdiskmap命令获得以下信息: ? 查看主机定义 ? 显示WWPN号

? 显示分配的卷和卷序列号

AIX中执行cfgmgr命令来发现LUNs。以下命令用来搜索adapter上设备:

33

以下命令则在所有adapter上搜索设备:

使用lspv来列出新配置的hdisk,作为MPIO FC2145设备出现:

? SDDPCM使用

SDDPCM使用pcmpath命令进行管理。pcmpath query adapter显示当前adapter状态:

pcmpath query device命令显示设备状态:

*星号表示非优先SVC节点上的非激活路径。

34

4.2.3. AIX卷扩展

自从AIX5.2以后AIX支持动态卷扩展,使卷能够在被主机和应用程序使用的情况下进行大小扩展。但是有以下限制:

- -

以下步骤显示如何在AIX上扩展SVC卷:

1. 使用svcinfo lsvdisk vdisk_name来显示当前SVC卷大小

2. 匹配lsvdisk的vdisk_UID与pcmpath query device的SERIAL输出的

hdisk能够被识别

3. 使用lspv hdisk显示当前AIX中卷大小

4. 使用svctask expandvdisksize命令来扩展SVC卷

5. 在卷大小扩展后,AIX需要更新这个配置信息,使用chvg –g vg_name。如果

AIX没有返回任何信息,意味着命令成功;如果返回解释信息则没有成功 6. 使用lspv hdisk命令来显示新配置卷大小

卷不能属于并发卷组

卷不能属于FlashCopy, Metro Mirror, Global Mirror

4.2.4. AIX系统中运行SVC命令

为了运行SVC CLI命令,必须安装SSH客户端。在SSH安装之前必须安装OpenSSL。 执行以下步骤: 1. 进入/.ssh目录 #cd /.ssh

2. 在AIX中生成SSH key文件 #ssh-keygen -t rsa -f filename -t表示生成的key类型:rsa1,rsa2或dsa,rsa2就是rsa,SVC使用rsa2; -f表示AIX服务器上私有和公有key文件名(公有key以.pub扩展名)。 例如:

A. 执行#ssh-keygen -t rsa

B. 显示以下消息: Generating public/private rsa key pair. Enter file in which to save the key (//.ssh/id_rsa) C. 输入Enter表示接受默认文件名,或者输入文件名(例如aixkey) D. 显示以下消息: Enter a passphrase (empty for no passphrase)

35

Enter same passphrase again: E. 完成配置后显示SSH key创建完成。私有key文件为输入的文件名(例如

aixkey),公有key文件以.pub为后缀(例如aixkey.pub)

3. 在SVC上使用Master Console安装公有key。复制公有key到Master Console

进行安装。

A. 使用http://svcclusteripaddress/进入SVC,进入用户管理界面,选择用

户→创建用户

B. 在用户创建窗口,输入用户名称,密码和访问级别(Security Administrator

为最高级别),选择SSH公有key文件

4. AIX上确保私有和公有key在.ssh目录和用户的home目录 5. 连接到SVC ssh -l admin -i filename svc

36

6. 也可以在AIX上直接执行SVC命令,例如 ssh -l admin -i filename svc svcinfo lshost -l admin是SVC上的用户,-i filename是生成的私有key文件名,svc为SVC名称或IP地址

5. Easy tier

判断SVC extent的I/O活动量,何时来将extent迁移到合适的性能层通常是个复杂的手工管理任务。Easy tier是一个性能优化工具,它会自动的迁移卷的extent到不同的MDisk存储层。

在一个多层存储池打开Easy tier功能,Easy tier会监视所有卷的extent的I/O活动和延时。基于这些监视数据它会创建一个迁移计划,将动态的移动高活动量或者hot extents到存储池内的一个更高的disk tier,同时它也会将活动量降下来的extent迁移到lower-tiered MDisk。因为这个迁移工作运行在extent级别,也通常也称为sub-LUN迁移。

Easy tier功能可以在存储池级别和在卷级别打开或者关闭。

在多层存储池环境中Easy tier每隔24小时创建一个迁移报告,即使在一个单层存储池中迁移时不可能的,但是这个统计功能仍然有用。 备注:image模式和sequential卷是不作为Easy tier自动迁移的对象。

5.1. Easy tier概念

Disk tier

由于disk或者RAID的类型不同,因此SVC集群的MDisk(LUN)将会有不同的性能属性。因此将存储层属性分配给各个MDisk,默认为generic_hdd。对于SVC6.1,SSD有个新的属性为generic_ssd。

SVC不会自动检测SSD MDisk,所有外部MDisk初始都是默认为generic_hdd层,因此管理员需要手工修改SSD层为generic_ssd。

单层存储池

单层存储池中MDisk应该有相同的硬件属性,例如相同的RAID类型,RAID阵列大小,disk类型,disk RPM和控制器性能属性。

37

多层存储池

多层存储池可以有不同类型的disk tier,例如同时有generic_hdd和generic_ssd属性的MDisk。

下图显示了存储池有2个不同的MDisk类型,分别为SSD和HDD阵列。

38

Easy tier process

Easy tier功能有4个主要过程: ? I/O监控

这个过程进行卷的I/O活动监控,为每个extent收集性能统计,在24小时计算平均值来生成一个报告。 ? 数据移动顾问

数据移动顾问使用统计报告来决定哪些extents作为迁移到高性能层(SSD)的候选者,同时也区别哪些extents需要迁移回低层(HDD)。 ? 数据迁移计划

根据数据移动顾问决定的extents,数据迁移计划为存储池建立extent迁移计划。 ? 数据迁移器

数据迁移器来进行实际迁移卷的extent到高disk tier或迁移回低层。Extent迁移率是最大为30MBps,也就是3TB一天。

当重新放置卷extents时,easy tier执行以下操作:

? 试着迁移高活动量的extent到SSD层,确保有空余extent可用。不是频繁访问的

extent将迁回到HDD层

? 以前迁移计划中没有执行迁移的extent在本次迁移中无效

Easy tier操作模式

Easy tier主要有3个操作模式:Off模式,Evaluation or measurement only mode和Automatic Data Placement or extent migration mode。

? Off模式:就是easy tier关闭。

? Evaluation or measurement only mode:

该模式为单层存储池的每个extent收集统计信息,这个典型用于只包含HDD的单层存储池。统计文件存放在SVC节点的/dumps目录下,文件名为dpa_heat.nodeid.yymmdd.hhmmss.data。

? Auto Data Placement or extent migration mode:

在这个模式下,必须设置存储池参数-easytier on或 auto,存储池中卷同样为-easytier on。存储池必须包含不同disk层的MDisk,也就是多层存储池。

动态数据移动对于主机服务器和应用数据来说是透明的。

这个模式也会创建统计文件,这个文件可以导入顾问工具,工具会产生一个extents迁移到SSD的报告,以及预测可能获得的性能提升。

为了激活easy tier,设置easy tier值为on,参数设置如下:

39

Storage Advisor Tool

IBM storqge advisor tool是一个运行在windows系统中的命令行工具,使用dpa_heat文件作为输入,产生活动报告的html文件。

提取统计文件可以通过

CLI或者GUI。在

GUI中导航选择

Troubleshooting→Support,如下:

在windows下运行如下: C:\\Program Files\\IBM\\STAT>STAT dpa_heat.nodenumber.yymmdd.hhmmss.data 在STAT目录下产生index.html文件,打开如下:

40

本文来源:https://www.bwwdw.com/article/9m13.html

Top