不久前,我需要在IBM®AIX®服务器上执行操作系统补丁,以更新到最新的技术级别和Service Pack。 该服务器一段时间未进行任何软件维护,因此需要进行调整。 我准备好了所有的维护窗口,然后开始了升级。
随着事情的进展,我注意到服务器变得特别慢。 尽管系统上没有活动的应用程序,也没有用户登录,但是服务器的性能大大降低了。 这没有任何意义,因为这是一台独立服务器,而不是一个虚拟化逻辑分区(LPAR),而其他任何系统都在争用CPU资源或共享基础结构。
在执行一些故障排除时,我使用topas
命令提取了服务器的实时数据,并注意到Wait列具有极大的价值。 但是只有一个磁盘引起了根卷组所在的所有开销-hdisk0。 我使用lspv –p
命令查看了磁盘,然后突然一切都变得有意义了(请参见下面的清单1 )。
清单1. lspv -p命令的结果
# lspv -p hdisk0
hdisk0:
PP RANGE STATE REGION LV NAME TYPE MOUNT POINT
1-1 used outer edge hd5 boot N/A
2-110 free outer edge
111-114 used outer middle hd6 paging N/A
115-116 used outer middle livedump jfs2 /var/adm/ras/livedump
117-124 used outer middle lg_dumplv sysdump N/A
125-130 used outer middle paging00 paging N/A
131-136 used outer middle hd6 paging N/A
137-217 free outer middle
218-219 used outer middle hd2 jfs2 /usr
220-220 used center hd8 jfs2log N/A
221-222 used center hd4 jfs2 /
223-237 used center hd2 jfs2 /usr
238-240 used center hd9var jfs2 /var
241-241 used center hd3 jfs2 /tmp
242-242 used center hd1 jfs2 /home
243-245 used center hd10opt jfs2 /opt
246-246 used center hd11admin jfs2 /admin
247-259 used center hd10opt jfs2 /opt
260-265 used center hd4 jfs2 /
266-266 used center hd2 jfs2 /usr
267-279 used center hd9var jfs2 /var
280-284 used center hd2 jfs2 /usr
285-285 used center hd3 jfs2 /tmp
286-286 used center hd2 jfs2 /usr
287-317 used center hd1 jfs2 /home
318-328 used center paging00 paging N/A
329-425 free inner middle
426-430 used inner middle hd6 paging N/A
431-437 free inner middle
438-535 free inner edge
536-546 used inner edge paging01 paging N/A
当我看到此磁盘的布局方式时,它说明了为什么存在I / O瓶颈。 该磁盘有许多错误和一些不良的计划,导致即使是简单的升级也要花费比原先更长的时间。 事实证明,即使在当今的存储区域网络(SAN),Internet SCSI(iSCSI)和其他顶级存储解决方案世界中,也需要对基本内部磁盘进行优化和正确设置,以便现代,更强大的服务器能够运行好。
本文提供了一些基本工具和技术,可用于优化AIX服务器上的内部存储。 使用我作为案例研究遇到的情况,本文介绍了如何在AIX中查看磁盘以及它们如何与Logical Volume Manager(LVM)交互。 从那里开始,它讨论了用于重组内部磁盘并使它们更牢固的各种策略和命令,包括一些较低级别的命令和简单的快捷方式。 然后,本文提供了一些更高级别的计划思想,以防止再次发生这些情况。
磁盘布局
AIX操作系统将硬盘(也称为物理卷 (PV)) 划分为称为物理分区 (PP)的固定空间区域。 这些PP的尺寸均相同,并且从磁盘的外边缘向内移动,向着主轴中心移动。 随着这些PV的收集,它们被称为体积组 (VG)。 在这些VG内,系统创建称为逻辑卷 (LV)的结构,这些结构将PP收集到可以在其上创建文件系统的可用区域中。
PP的大小随VG的创建而固定,并且期望添加到VG的其他PV符合相同的PP大小。 每个PP一次只能分配给一个LV,并且任何LV必须至少有一个PP才能存在。 如果增加文件系统,则文件系统扩展的最小大小为一个PP。
相对于它们在硬盘盘片上的位置,AIX将PV分为五个区域:外部边缘,外部中间,中心,内部中间和内部边缘。 下面的图1中说明了这种划分。
图1.磁盘布局
几种基于数学和物理的属性会影响这五个区域的磁盘I / O,延迟和访问。 由于角动量的守恒,圆盘的外边缘比较慢的内边缘具有更快的旋转速度-就像在操场上骑旋转木马的孩子在外侧比在中间快得多地旋转。 但是,由于数据物理放置的限制,并非磁盘上的所有数据都会被写入外边缘,因此硬盘头的最快查找时间将位于磁盘的中心区域,平均最可能经过头部的地方。
对于我要修补的服务器,数据几乎以混乱或随机的方式位于磁盘上。 但是在整理出这些数据之前,必须对AIX如何直接管理LV进行更多考虑。
逻辑卷管理器注意事项
AIX有一个称为Logical Volume Manager的本机工具,用于处理PV,VG,LV和文件系统之间的关系。 LVM在物理介质上创建逻辑结构,用于管理操作系统中的数据。 与磁盘优化有关,LVM还提供了一种自定义可用性,性能和冗余的方法。
LVM促进优化的两个最广泛使用的功能是通过镜像和条带化。 LVM允许您使用最多三个数据副本来镜像LV。 在这里,一个LP可以指向一个或多个PP。 这样,如果发生硬件故障,数据将保留在其他物理设备上。 尤其是在使用内部存储的小型系统中,至关重要的是必须对所有数据进行镜像以防止计划外的中断。
条带化将数据分布在多个硬盘上,以便可以在大量磁盘上同时发生多个读取和写入操作。 您可以通过更改每个LV的物理间卷分配策略属性来启用分拆。 通过将策略设置为最小值(默认值),可以提高可靠性,因为没有一个磁盘故障会影响LV。 通过将策略设置为最大,LVM会在VG内最大数量的磁盘上对数据进行条带化,从而最大程度地增加一次可以执行的I / O操作数。
在考虑优化内部磁盘时,必须保持性能与冗余之间的平衡。 对于较小的系统,通常没有足够的空间来执行大规模条带化,更不用说通过镜像进行条带化了。 对于具有大量内部硬盘的大型系统,条带化和镜像可以显着提高性能并最大程度地减少I / O等待时间。
优化内部磁盘
通过结合这些有关AIX如何物理构造硬盘的概念以及LVM如何将逻辑结构施加到磁盘上的这些概念,我综合了一些原理来帮助优化内部磁盘:
- 使LV尽可能连续。 当文件系统散布在磁盘上时,硬盘头需要更长的时间才能找到所需的数据。 如果LV连续存在一个区域,则寻道时间将最短,并且可以更快地找到文件。
- 将具有高I / O或顺序读取或写入操作的LV放在外边缘。 由于磁盘外边缘的速度快,需要以长序列(例如大型静态文件或数据库内容)更快地读写数据的LV将受益于外边缘更高的旋转速度。
- 将活动度较高的左心室朝向中心。 如果您的文件系统具有大量读写操作,并且需要快速响应,那么由于平均值,硬盘头很可能在任何时间都位于中心位置。 通过将这些文件系统放置在该区域中,磁头将更可能位于该大致区域中。 这种配置减少了寻道时间,并保持了良好的I / O。
- 将使用率低的LV放在内部边缘附近。 如果您有很少使用或访问的任何文件系统,请通过将它们放在I / O速度最低的磁盘部分中(靠近主轴的内边缘),将它们移开。 例如,很少使用的逻辑卷在这里很合适。
- 每个磁盘仅使用一个调页空间LV。 分页空间的目的是用作将内存中的页面换入和换出到物理存储区域的临时位置,从而使CPU能够执行更多操作并赶上一切。 在同一磁盘上定义多个调页空间LV不能通过引起更多I / O来弥补性能下降的目的,因为磁盘头必须移到磁盘的多个区域而不是一个区域。
- 尽可能不要镜像分页空间。 同样,因为调页空间的目的是使用物理存储来弥补资源短缺,所以在镜像配置中两次写入同一组数据毫无意义。 相反,如果两个磁盘具有两个单独的调页空间LV,则每个LV都可以解决内存交换问题,并使有效性提高一倍。
- 使调页空间大小保持一致。 关于调页空间的最后一点是保持调页空间LV尽可能一致。 如果您有两个73GB的内部磁盘,一个磁盘具有1GB的调页空间LV,而另一个磁盘具有4GB的调页空间LV,则这两个磁盘之一可能会遭受更多磨损。 并且,取决于调页空间是如何添加到服务器或缩小大小的,LV之一可能会变满并对系统产生不利影响。 另外,保持大小不变会使
lsps
命令输出看起来更lsps
,更准确。 - 保持一些可用空间。 尽管可能有一些管理员试图从服务器中压缩掉最后的每一个容量,但始终最好在磁盘上保留一些可用空间。 这不仅与在内部或外部中间区域中具有一个或两个较大的间隙有关,而且还与LV之间具有空间(以防万一需要增长任何空间)以及文件系统本身中的少量可用空间有关。 如果将所有内容按在一起,
chfs –a size=+1MB
需要一个小的chfs –a size=+1MB
命令即可破坏LV连续性。 - 正确地镜像事物。 管理员经常犯的一个错误是在镜像的VG上创建一个新的文件系统,然后忘记在另一个磁盘上创建一个副本。 仅仅因为VG被镜像并不意味着随后添加的支持文件系统的LV也将被镜像。 始终确保新的LV在单独的PV上获得副本。
- 尽可能分配I / O负载,以提高性能和冗余性。 如果您有一个带有多个抽屉的较大系统,请通过在多套磁盘包之间分割数据来利用它们。 而且,如果您选择对PV进行镜像,请在不同的抽屉中进行镜像,这样,如果背板发生故障,冗余就不仅限于一个抽屉。
优化磁盘的工具
该过程的下一步是使内部存储优化的这些原则成为现实。 我采用了几种命令来整理磁盘,使它们符合应如何设计。
lspv,lsvg和lslv
lspv
, lsvg
和lslv
命令是用于可视化一切布局的关键工具。 lspv
命令显示了如何在PV上分散数据(如我之前的示例所示)。 带有–l
标志的lsvg
命令一目了然地显示数据是否已镜像以及VG中包含哪些内容。 lslv
命令应与–m
标志一起使用,以分析PV五个区域内任何特定LV的布局,如下所示:
hd4:/
PV COPIES IN BAND DISTRIBUTION
hdisk0 128:000:000 100% 000:108:020:000:000
chlv
chlv
命令通常是我运行的第一个命令,它可以更改内容以优化磁盘。 我使用它来设置PV内部分配策略,以从外部边缘到内部边缘将LV放置在PV上的位置。 此命令有助于合并数据并使它们连续。
迁移电视
如果我发现某些LV不在正确的PV上,则在进行更多重组之前,我使用migratepv
通过使用–l
标志在逐个LV的基础上移动数据在PV之间移动。
改组
reorgvg
命令是优化内部磁盘的真正主力军。 该命令采用每个LV的PV内分配策略,并围绕这些标准重新组织PV。 尽最大努力将LV移动到磁盘的特定区域并正确对齐空间。 但是在某些情况下,可能需要花费大量时间才能运行,并且可能无法使所有事情都完美无缺,这就是为什么可能需要手动干预的原因。
migrationlp
转移了LV之后,磁盘上的某处可能会有一个或两个令人讨厌的LP或PP卡,因此/ tmp会被大多数/ usr包围。 migratelp
命令可以手动逐个LP地移动数据, migratelp
。
mirrorvg和mklvcopy
您使用mirrorvg
和mklvcopy
命令一次(镜像整个VG mirrorvg
)或使特定的LV,拷贝当添加文件系统(如mklvcopy
)。 但是,您可以将mirrorvg
使用两个技巧来优化内部存储。 如果已使用chlv
设置了PV内分配策略,则通过使用–c
标志镜像该卷组,则数据将被镜像到一个新的PV并一直遵循这些策略,将其整洁地布置。 或者,如果您已经有了一个经过优化的磁盘,则可以使用–m
标志,并按照与第一个PV完全相同的方式对第二个PV进行布局,以实现完全并行的读取和写入。
结果
遵循这些原则并使用上述工具后,我能够通过合并调页空间,正确调整文件系统的大小以及将LV放置在PV上的适当位置来补救可怜的磁盘。 从下面的清单2中可以看到,磁盘空间的使用效率更高,并且I / O肯定得到了改善。
清单2.磁盘优化后运行lspv
# lspv -p hdisk0
hdisk0:
PP RANGE STATE REGION LV NAME TYPE MOUNT POINT
1-1 used outer edge hd5 boot N/A
2-2 used outer edge hd8 jfs2log N/A
3-110 free outer edge
111-130 used outer middle hd6 paging N/A
131-147 used outer middle hd9var jfs2 /var
148-219 free outer middle
220-245 used center hd2 jfs2 /usr
246-252 used center hd1 jfs2 /home
253-255 used center hd3 jfs2 /tmp
256-270 used center hd10opt jfs2 /opt
271-328 free center
329-337 used inner middle hd4 jfs2 /
338-437 free inner middle
438-440 used inner edge livedump jfs2 /var/adm/ras/livedump
441-448 used inner edge lg_dumplv sysdump N/A
449-449 used inner edge hd11admin jfs2 /admin
450-546 free inner edge
通过这种布局,硬盘磁头不必离中心区域太远,我可以腾出空间来放置一些文件系统,并且I / O等待时间更少。 通过将此配置镜像到第二个磁盘,我还提供了冗余以减轻可能的故障。
结论
在AIX 4.3.3和IBM RS /6000®服务器的早期,由于可用资源有限,必须进行磁盘优化以使服务器性能良好。 但是,即使当今磁盘的大小通常超过100GB,速度通常超过15,000 RPM,并且较新的IBMPOWER7®服务器运行速度更快,并且比以前的任何AIX服务器执行的功能都更多,但是这种用于内部存储器优化的相对简单的过程仍然可以发挥作用。
翻译自: https://www.ibm.com/developerworks/aix/library/au-internalstorage/index.html