SHR
计算机术语
SHR是汇编逻辑指令---移位指令中的一种,我在这里仅对此做一简述,其他相关详见移位指令词条。以下所用名词定义不必特别纠结,如果不明白可以当做是一个变量名来认识。SHR指令将目的操作数顺序右移1位或CL寄存器指定的位数。逻辑右移1位时,目的操作数的最低位移到进位标志位CF,最高位补零。
逻辑右移
定义
逻辑右移SHR 
SHR指令影响标志位CF和OF。如果移位次数为1,且移位后符号位的值发生变化,则OF=1,否则OF=0.如果移位次数不为1,则OF不确定。
【格式】:SHR OPR.CNT。其中OPR用除立即数外的任何寻址方式。移位次数由CNT决定,在8086中可以是1或CL,CNT为1时只移一位。
如:MOV AX,62H
SHR AX,1
当移位数大于1时,需要先将移位数放进CL中然后再进行移位操作。可以使用8位立即数指定范围从1到31的移位次数。
如MOV AL,62H
MOV CL,4
SHR AL,CL
所执行简易理解如下:
01100010B 因为是右移操作,也称为右移补0操作,将二进制位逐次在右边去掉一位然后在左边添个0,移多少位重复上述操作多少次。4次移位后结果为00000110B,即06H.
【应用】 逻辑右移一位的操作,相当于将寄存器存储器无符号数除以2,因此同样可以用SHR指令完成除以某些常数的运算。而且移位指令通常比除法指令时运行速度要快得多。
扩展内容
除SHR外,移位指令还包括以下命令:
SHL(shift logical left) 逻辑左移
SAL(shift arithmetic left) 算术左移
SAR(shift arithmetic right) 算术右移
ROL(rotat left) 循环左移
ROR(rotat right) 循环右移
RCL(rotate left through carry) 带进位循环左移
RCR(rotate right through carry) 带进位循环右移
SHLD(shift left double) 双精度左移
SHRD(shift right double) 双精度右移
系统简介
Synology Hybrid RAID(直译:群晖混合磁盘阵列)是一种自动磁盘阵列管理系统(Automated RAID Management system),设计初衷为简化管理的同时增加磁盘空间利用率。SHR适合那种从不关心也不想关心NAS中支持哪种RAID模式的、不明白RAID细节的、而又想很方便的最大化利用空间的用户。SHR最大支持单硬盘故障,当两个或更多硬盘故障时将出现数据丢失,所以官方说法为“Note that a RAID volume (whether classic RAID or SHR) is nota backup system”,不适合作为备份用途。
SHR是很必要的么?
Synology并没有非常推荐使用SHR,如果用户比较熟悉RAID的种类与管理方法,完全可以使用传统RAID,比如管理员与高级用户。SynologyWiki中用以下语句描述SHR:“SHR基于一种Linux下的磁盘管理系统,而且完全是一种可选项。”(The SHR is based on a Linux RAID management system, and is completely optional to use.)
SHR的空间使用方式
如图1所示,系统中包含500GB、1TB、1.5TB、2TB、2TB一共5块硬盘,图中左边为传统的磁盘阵列模式,此时系统总可用空间只为2TB,因为每一块磁盘可用空间以系统中容量最小的硬盘为基准,所以可用总量是500GBX4=2TB(其中一块硬盘为冗余用途),阵列总使用2.5TB,剩余的4.5TB无效。
图1中右方为使用SHR的情形,整个系统建立的4套独立的阵列系统,每个系统中有500GB为冗余空间,其余为可用空间,所以除掉500X4=2TB的冗余空间外,其他的5TB均为可用空间,所以SHR的空间利用率是很高的,整个空间没有丝毫浪费。
但是需要注意的是,SHR的安全性并不高,比如最坏的情况,当图1中最右方的2TB硬盘出现故障时,所有独立阵列都会收到牵连。
SHR的扩展
当替换磁盘扩展阵列容量时,传统RAID与SHR的容量变化如图2所示,可以看到在替换完成之前,RAID的可用空间并不会随着硬盘容量增大而增大;而SHR的容量是即时增加,这样可以满足在替换过程中对容量增加的需求的需求。
SHR的硬盘更换
1.SHR卷可以将硬盘替换成更高容量而不丢失数据。(比如将某块硬盘从1TB更换为3TB,在群晖的NAS上。)
2.SHR卷可以增加硬盘。(比如从5个1TB硬盘增加至15个。)
3.现有硬盘不能更换为更小的硬盘,起码要相等。
参考资料
最新修订时间:2024-08-01 02:15
目录
概述
逻辑右移
参考资料