跳过导航链接 | |
退出打印视图 | |
![]() |
Sun Storage Archive Manager 5.3 配置和管理指南 Sun QFS and Sun Storage Archive Manager 5.3 Information Library (简体中文) |
归档程序和回写程序进程均会请求装入和卸载介质。如果请求的数量超过可用于介质装入的驱动器数量,则多余的请求会发送至预备队列。
预备队列中的条目数量取决于 defaults.conf 文件中的 previews= 指令。有关更改此指令的值的信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"defaults.conf(4)"。
默认情况下,系统按先进先出 (First In First Out, FIFO) 的顺序执行预备请求。
预备请求的总优先级是由静态和动态因子共同决定的。数值越大,优先级就越高。静态优先级因子在生成请求时进行设置。一旦请求生成并进入等待执行状态,静态优先级因子对总优先级的影响将不会发生变化。在请求等待执行期间,动态优先级因子可以提高或降低请求的总优先级。
可以通过在 /etc/opt/SUNWsamfs/preview.cmd 命令文件中输入指令来覆盖 FIFO 默认值。
sam-amld 守护进程在启动时读取 preview.cmd 文件。此文件根据请求是针对回写还是归档,对预备队列中的请求进行排序。您可以提高特定 VSN 的优先级,也可以控制特定文件系统预备请求的优先级。
以下规则适用于 preview.cmd 文件:
每行放置一条指令。
如果在 sam-amld 守护进程运行时更改此文件,应重新启动守护进程以使更改生效。
注释行以井号 (#) 开头。
有关此文件的更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"preview.cmd(4)"。
preview.cmd 文件中使用以下类型的指令:
全局指令,应用于所有文件系统
文件系统指令,特定于单个文件系统
全局指令位于文件顶部,其设置适用于所有文件系统。
文件系统指令以 fs = 指令开头,该指令指定适用所有后续指令的文件系统。文件中可以包含多个文件指令块。文件系统指令的应用范围到出现下一行 fs = 或到达文件末尾为止。
当多条指令影响一个文件系统时,专用于该文件系统的指令将覆盖全局指令。
以下各节介绍了如何编辑 preview.cmd 文件,以控制预备队列:
![]() | 注意 - VSN 指令和时限优先级指令是全局指令,因此它们在 preview.cmd 文件中位于任何特定于文件系统的指令之前。 |
vsn_priority = value
该指令是一个静态优先级因子,表示在有高优先级卷时,总优先级将要增加的值。默认值为 1000.0。要使用该优先级因子,必须在将卷安排为预备请求之前设置其优先级标记。可以使用带 p 选项的 -chmed(1M) 命令,来设置优先级标志(例如 chmed +p lt.AAA123)。
age_priority = factor
该指令是静态优先级因子,尽管其影响是动态的。该因子将与请求作为预备请求的秒数(即请求等待的时间)相乘。其结果将与请求的总优先级相加。请求等待的时间越长,优先级就会变得越高。设置该因子可确保较旧的请求不会被具有其他较高优先级因子的较新请求无限期地取代。
如果将此因子设置为 1.0 以上,可以在计算总优先级时提高时间因子的重要性,如果将其设置为小于 1.0 的值,则会降低时间因子的重要性。如果将该因子设置为 0.0,则在计算总优先级级时不考虑时间因子。
对于没有设置优先级标志的卷,系统将根据它在队列中等待的时间提高其优先级。这样,该 VSN 的优先级可能会高于以后进入队列且已设置优先级标志的 VSN。
lwm_priority + lhwm_priority + hlwm_priority + hwm_priority = water mark priority(界限优先级)
总之,这四个界限设置用于创建包括百分比值(表示文件系统的占用率)以及上限和下限设置级别在内的动态优先级因子。指定给预备请求的值取决于优先级因子是全局性的、文件系统专用的、还是未设置。
界限优先级仅用于计算与归档有关的请求,而不能用于计算与回写有关的介质请求。当界限优先级因子是一个正数时,计算出的总优先级所产生的影响是:提高归档请求的优先级而降低回写请求的优先级。反之,当界限优先级因子是负数时,归档请求的总优先级会降低,这会导致系统优先处理回写请求,然后再处理归档请求。界限优先级因子为 0.0(或不指定指令)表示不采取任何特殊的操作。
有关更多信息,请参见示例 15–7-强制执行回写请求的方案。
界限指令具有以下格式:
wmtype_priority = value
|
当文件系统的情况发生变化时,系统将根据相应的界限优先级设置来重新计算与该文件系统关联的每个卷的优先级(可能使用也可能不使用 chmed 命令的 -p 选项)。
下面的示例释放足够的磁盘空间,可以使文件系统低于下限。
lhwm_priority = -200.0 hlwm_priority = 100.0
预备请求的总优先级是所有优先级因子的总和:
total priority(总优先级)= vsn_priority + wm_priority + (age_priority * time_in_sec_as_preview_request)
仅出于如下原因更改默认的 FIFO 方案:
确保首先处理回写请求,然后处理归档请求。
确保归档请求在文件系统将要充满时获得最高优先级。
将使用特定介质组的请求排在预备请求列表的顶部。
以下示例显示了可以满足这三个条件的 preview.cmd 文件。
示例 15-6 preview.cmd 文件样例
# condition 1 lwm_priority = -200.0 lhwm_priority = -200.0 hlwm_priority = -200.0 # condition 2 hwm_priority = 500.0 # condition 3 age_priority = 1.0
在用户访问数据的重要性极高、VSN 驱动器数量有限或者文件归档作为后台功能执行的环境中,使用 preview.cmd 文件可以影响存储系统资源处理回写请求的方式。可以在 preview.cmd 文件中定制设置,以支持上述所有方案,并影响所配置的 SAM-QFS 环境。
由于该文件中的设置对数据并无影响,因此建议尝试并调整不同的指令设置,以便在权衡每一个预备请求的优先级时,能够在归档请求和回写请求之间找到适当的平衡点。
示例 15-7 强制执行回写请求的方案
以下计算示例显示如何使用一个负 wm_priority 值来确保回写请求优先于归档请求。本示例假定:
队列中已经有多个请求的等待时间达到了 100 秒。
vsn_priority 的默认值为 1000。
下表显示了计算总请求优先级的方式,如下所示:
|
示例 15-8 强制执行归档请求的方案
当在环境中权衡为用户回写文件与将新文件归档至介质这二者的重要性时,最为关心的是超过上限的情形。在此情况下,如果没有足够的满足归档要求的文件来降低充满状态文件系统的占用率,则满足待定的归档请求是防止文件系统达到极限的最佳方法。
在此情况下,只需在 preview.cmd 文件中进行以下示例中的设置:
hwm_priority = 500.0
示例 15-9 按介质类型设定请求级别的方案
假设在站点所处的环境中,用户正在处理使用特定卷的多组文件,并且用户之间彼此隔离。在此环境中,某些项目有时可能具有较高的优先级;因此,它们需要具有优先使用可用系统存储资源的权利。以下示例为用户及其介质指定了适当的优先级:
vsn_priority = 5000.0
之后,对于优先级用户组中的每个卷,加入以下信息:
# chmed +p lt. VSN
现在,每一个要求访问特定 VSN 的请求均优先于预备队列中的其他待定挂载请求。
示例 15-10 复杂优先级的方案
假设有两个具有以下要求的文件系统:
请求在队列中的等待时间不能太长 (age_priority)。
当其中的一个文件系统低于下限时,将优先处理回写请求。
如果其中的一个文件系统高于下限但低于上限,则不会确定请求的优先级。
以下示例显示了受影响的指令。
lwm_priority = -200.0 lhwm_priority = 0.0 hlwm_priority = 0.0
当其中的一个文件系统超过上限时,将优先处理归档请求。
假设两个文件系统都超过上限,但必须阻止第二个文件系统 (samfs2) 达到其极限。以下示例显示的 preview.cmd 文件根据这些要求确定请求的优先级。
age_priority = 100.0 vsn_priority = 20000.0 lhwm_priority = -200.0 hlwm_priority = -200.0 fs = samfs1 hwm_priority = 1000.0 fs = samfs2 hwm_priority = 5000.0