什么是存储卡锁起SCSI锁?

IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
在 SAN 日益普及的今天,提到 SAN 环境我们就会想到 :数据高可用、I/O 高性能和数据在服务器间共享等特性。当来自 SAN 中的 LUN 在多个服务器间共享时,我们通常会使用集群软件来保证它们之间数据的一致性的。但是如果在开发,测试环境中没有安装这些集群软件,或在生产环境中某个 LUN 没有被定义到集群中,数据的一致性又该如何保护和实现的呢?在本文会介绍 AIX 中 MPIO hdisk 的 reserve_policy,以及通过对它的正确设置实现数据的共享及保护的方法。
, 高级 IT 工程师,
朱靖虹 2001 年加入 IBM公司. 在Advanced Technical Skill部门负责AIX, PowerVM, PowerHA 的相关技术支持工作。您可以通过 developerWorks 社区与
概述在 SAN 技术日益普及的今天,提到 SAN 环境我们就会想到 – 数据高可用、I/O 高性能和数据在系统间共享等特性。当来自 SAN 中的 hdisk 在多个系统间共享时,我们通常会使用集群软件来保证它们之间数据的一致性。但是如果在开发,测试环境中没有安装集群软件,或在生产环境中某个 hdisk 没有被定义到集群中,但又要使多个 AIX 系统共享它,此时数据的一致性又该如何实现的呢?在本文会介绍 AIX 中 MPIO hdisk 的 reserve_policy 属性,以及通过对它的正确设置实现数据的共享及保护的方法。在一次去客户现场的时候,有一位负责测试开发的工程师问我:为了测试方便,他们将 SAN 环境中的 LUN 同时 mapping 给了多个 AIX 系统,这几个系统间没有配置 PowerHA 集群, 由哪一个 AIX 系统使用这些 hdisk, 是靠手工来协调的。所以经常由于大意,两个 AIX 系统同时做了 varyonvg 的操作,将该 hdisk 上的卷组 (VG) 给激活,使得用裸设备的数据库会宕掉或起不来; 在 mount 起的文件系统上,明确记得已保存了的文件,当下次再用时找不到了,或内容丢失;有时侯文件系统突然间就不能写了,辛辛苦苦编写的东西转眼就消失了。有什么办法使这几个 hdisk,在多个 AIX 系统共享的同时,又阻止同一时刻对 hdisk 进行写操作,以避免上述情况的发生。 我当时告诉他们的办法是将 hdisk 的 reserve_policy 属性由缺省的 no_reserve 改为 single_path,卷组就只能在一个 AIX 上被激活了. 但是 I/O 的性能会有一定的损失.随着存储技术和 AIX 系统的不断更新,现在大多数的设备和系统都支持 SCSI-3 系列命令。我们有了既满足共享数据一致性要求,又能不损失 I/O 性能的方法。我为此进行了相应的测试,希望能够帮助分析类似错误发生的原因,找到解决问题的办法。下面将结果分享给大家.AIX 技术术语介绍
MPIO: Multi-path Input Output, 多路径输入和输出
SCSI-3 PR: 表示 SCSI-3 Persistent Reservation. SCSI-3 PR 使用注册登记(Registration)和预约保护方式 (Reservation) 来实现多路径,多系统对共享 MPIO hdisk 的访问。 每个系统要先向 SCSI-3 设备进行注册登记自己的 PR 值,然后以预约保护或共享的方式使用该设备。使用 SCSI-3 的 PR 预约保护在系统关机后保护还是有效的,这就是持续预约保护 (persistent reserve) 所在;而 SCSI-2 的保护在 AIX 系统关机后就无效了。
在 AIX 中 MPIO hdisk 的 reserve_policy 有如下几种:
无保护策略No Reserve reservation policy ( no_reserve)
如果系统中MPIO hdisk选择的是此保护策略的话,就意味该设备不受保护。任何可以识别到它的系统,都可以在任何时候进行I/O 访问。 并且 I/O可以通过多条路到达。
这是目前AIX系统内嵌的和SDDPCM多路径软件的缺省保护策略。单路径排他保护策略 Exclusive Host Access single-path reservation policy (single_path)
它使用的是SCSI-2的保护策略。 使用该保护策略时,尽管MPIO hdisk 的 所有路径都是打开的, 但只在一条路做了SCSI-2的保护,I/O 请求只能通过这一条路径到达。 当选中的路径发生问题时,该路径保护被释放; 在其他备选路径中重新选择一条,再加上 I/O保护, 所有的I/O请求转到新路径上。多路径的特性没有被充分利用,损失了I/O 性能。持续排他预约保护策略Persistent Reserve Exclusive Host Access reserve policy (PR_exclusive)
如果AIX系统中的 MPIO hdisk 设置的是此预约保护策略,表示该hdisk 的访问保护是由一个 SCSI-3 PR 值来控制的,任何AIX系统如果注册登记了与hdisk的当前预约保护PR值相同的话,就可以访问此它。 通常我们要为每个AIX系统的MPIO hdisk设置一个唯一的PR值,不同的系统应设置不同PR值。这样就能很容易知道当前谁在使用该hdisk.
由于MPIO hdisk的所有路径注册的PR值是相同的,这样I/O 请求就被发送到MPIO hdisk的所有路径上,可以提高数据访问的性能。这是在非并发,非集群环境中应该为MPIO hdisk选择的保护策略。
我们可以用
pcmquerypr 命令来检查hdisk 所使用的保护策略(resrvpolicy)和已注册登记的PR值(Key0)。由于该hdisk使用的是 PR_exclusive保护策略,只能注册一个PR值。#pcmquerypr -Vh /dev/hdisk8
connection type: fscsi0
open dev: /dev/hdisk8
Attempt to read reservation key...
Attempt to read registration keys...
Read Keys parameter
Generation : 196
Additional Length: 8
Key0 : 0xABCD3
resrvpolicy= PR_exclusive
Reserve Key provided by current host=0xabcd3 (hex)0xabcd3
Reserve Key on the device: 0xABCD3
Reservation key type: 0x5
Reserved by the current host with 0xabcd3持续共享预约保护策略Persistent Reserve Shared Host Access reserve policy (PR_shared)
如果系统中的 MPIO hdisk 选择的是此保护策略,表示hdisk 是可共享访问的.无论哪个系统只要是使用了SCSI-3 PR值进行了注册登记,并且reserve_policy=PR_shared就可以访问此MPIO hdisk。 在并发的集群环境中选择此策略来设置在多个AIX系统间共享的hdisk。
我们可以用
pcmquerypr 命令来检查hdisk 所使用的保护策略(resrvpolicy)和已注册登记的PR值(Key0,Key1)。由于该hdisk使用的是 PR_shared保护策略,所以能注册多个PR值。#pcmquerypr -Vh /dev/hdisk8
connection type: fscsi0
open dev: /dev/hdisk8
Attempt to read reservation key...
Attempt to read registration keys...
Read Keys parameter
Generation :
Additional Length:
resrvpolicy= PR_shared
Reserve Key provided by current host = 0x9876 (hex)0x9876
Device is shared by the current host with reserve_type 7
系统是否支持 SCSI-3 的 PR 保护策略,与所连接的存储设备驱动程序及多链路软件有关。在 AIX 中可以使用 lsattr 命令来检查。若命令输出中包含 no_reserve, single_path,PR_exclusive 和 PR_shared 表示此 hdisk 支持 SCSI-3 PR 和 SCSI-2 保护策略;若 lsattr 命令输出只有 no_reserve, single_path, 表示此 hdisk 只支持 SCSI-2 的保护策略。实验环境及测试方法描述测试环境服务器: 2 个 p710操作系统: AIX 7.1-TL1-SP4存储设备: XIVsddpcm: 2.6.3.1测试步骤一将来自于 XIV 上的 LUN, mapping 给两个 AIX 系统,使它们可同时看到同一块 hdisk。在其中一个 AIX 系统上创建卷组和文件系统,另一个 AIX 系统做 importvg 操作,使两边的卷组信息在开始时是一致的。测试步骤二通过使用 chdev 命令,修改 MPIO hdisk 的 PR_key_value, reserve_policy 和 algorithm 来验证卷组是否可同时被两个 AIX 系统读写。测试内容包括激活卷组,mount 文件系统,使用 dd 命令向 lv 中读、写数据 # varyvg prtestvg
# mount /prfs
#dd if=/dev/rprlv1 of=/dev/null
# dd if=/dev/zero of=/dev/rprlv2测试记录两 AIX 系统的 PR_key_value 值不同在两个 AIX 系统上为同一块 MPIO hdisk 设置不同的 PR_key_value 时,通过修改 reseve_policy 属性,观察是否有访问保护。root@serve1/&chdev -l hdisk9 -a PR_key_value=0x1234 -a reserve_policy=PR_exclusive
root@serve1/&chdev -l hdisk9 -a PR_key_value=0x1234 -a reserve_policy=PR_sharedroot@server 2/&chdev -l hdisk9 -a PR_key_value=0x2345 -a reserve_policy=PR_exclusive
root@server 2/&chdev -l hdisk9 -a PR_key_value=0x2345 -a reserve_policy=PR_sharedFirst node policy: 首先执行 varyonvg 命令的 AIX 系统所设置的 reserve_policySecond node policy:随后执行 varyonvg 命令的 AIX 系统所设置的 reserve_policy表 1.两 AIX 系统的 PR_key_value 设置为不同值时的读写情况
Second node policy
First node policy
PR_exclusive
PR_exclusive
由于 PR 值不同,第二个 AIX 系统无法激活卷组
由于 PR 值不同,第二个 AIX 系统无法激活卷组
由于 PR 值不同,第二个 AIX 系统无法激活卷组
I/O 的访问不受 PR 值的限制,VG 可同时被激活。在没有 PowerHA 和并发应用软件控制的情况下,文件系统和裸设备有被破坏的可能。
两 AIX 系统的 PR_key_value 值相同在两个 AIX 系统上为同一块 MPIO hdisk 设置相同的 PR_key_value 时,通过修改 reseve_policy 属性,观察是否有访问保护。root@server1/&chdev -l hdisk9 -a PR_key_value=0x1234 -a reserve_policy=PR_exclusive
root@server1/&chdev -l hdisk9 -a PR_key_value=0x1234 -a reserve_policy=PR_sharedroot@server2/&chdev -l hdisk9 -a PR_key_value=0x1234 -a reserve_policy=PR_shared
root@server2/&chdev -l hdisk9 -a PR_key_value=0x1234 -a reserve_policy=PR_exclusiveFirst node policy: 首先执行 varyonvg 命令的 AIX 系统所设置的 reserve_policySecond node policy:随后执行 varyonvg 命令的 AIX 系统所设置的 reserve_policy表2.两 AIX 系统的 PR_key_value 设置为相同值时的读写情况
Second node policy
First node policy
PR_exclusive
PR_exclusive
PR 值相同,VG 可同时被激活。在没有 PowerHA 和并发应用软件控制的情况下,文件系统和裸设备有被破坏的可能。
PR 值相同,VG 可同时被激活。在没有 PowerHA 和并发应用软件控制的情况下,文件系统和裸设备有被破坏的可能。
VG 只能被第一个做 varyonvg 的 PR_shared 节点所访问, 直到手工将预约保护清除,PR_exclusive 才可访问
I/O 的访问不受 PR 值的限制,VG 可同时被激活。在没有 PowerHA 和并发应用软件控制的情况下,文件系统和裸设备有被破坏的可能。
两 AIX 一个使用 PR, 另一个使用 single_path 或 no_reserve在两个 AIX 系统上对同一块 MPIO hdisk, 一个 AIX 系统设置 PR_key_value,另一个系统不设或设 PR 值,通过修改 reseve_policy 属性,观察是否有访问保护。First node policy: 首先执行 varyonvg 命令的 AIX 系统所设置的 reserve_policySecond node policy:随后执行 varyonvg 命令的 AIX 系统所设置的 reserve_policy表3. 两 AIX 系统的一个设置 PR_key_value, 另一使用 scsi-2 方式时的读写情况
Second node policy
First node policy
PR_exclusive
no_reserve
single_path
PR_exclusive
见表 1 和表 2
见 表 1 和表 2
VG 可同时在两个 AIX 上激活,但只有设置 PR_exclusive 的 AIX 才可以对此 VG 进行读写操作。设置为 No_reserve 的 AIX 不能进行任何写操作。
VG 只能被第一个执行 varyonvg 命令的系统所访问。第二个 AIX 系统无法激活卷组
见 表 1 和表 2
见 表 1 和表 2
VG 可同时在两个 AIX 上激活,但只有设置 PR_shared 的 AIX 才可以对此 VG 进行读写操作。设置为 No_reserve 的 AIX 不能进行任何写操作。
VG 只能被第一个执行 varyonvg 命令的系统所访问。第二个 AIX 系统无法激活卷组
no_reserve
VG 可同时在两个 AIX 上激活。但当 VG 被设置为 PR_exclusive 的 AIX 激活后,它就完全拥有读写权限。设置为 no_reserve 的系统对 VG 只能读,不能进行写操作,之前 mount 的文件系统会被破坏。
VG 可同时在两个 AIX 上激活。但当 VG 被设置为 PR_shared 的 AIX 激活后,它就完全拥有读写权限。设置为 no_reserve 的系统对 VG 只能读,不能进行写操作,之前 mount 的文件系统会被破坏。
VG 可同时被激活。在没有 PowerHA 和并发应用软件控制的情况下,文件系统和裸设备有被破坏的可能。
VG 可同时在两个 AIX 上激活。但当 VG 被设置为 single_path 的 AIX 激活后,它就完全拥有读写权限。设置为 no_reserve 的系统对 VG 只能读,不能进行写操作,之前 mount 的文件系统会被破坏。
single_path
VG 只能被第一个执行 varyonvg 命令的系统所访问。第二个 AIX 系统无法激活卷组
VG 只能被第一个执行 varyonvg 命令的系统所访问。第二个 AIX 系统无法激活卷组
VG 只能被第一个执行 varyonvg 命令的系统所访问。第二个 AIX 系统无法激活卷组.
VG 只能被第一个执行 varyonvg 命令的系统所访问。第二个 AIX 系统无法激活卷组
测试结果分析从以上 20 个场景的测试结果可以看到: 在没有 PowerHA 和并发应用软件控制的情况下, 只有将 MPIO hdisk 的 reserve_policy 设为 PR_exclusive 或 single_path 才能保证数据的完整性. 为了避免 PR_key_value 值相同可能导致的数据不一致, 请一定为每个 AIX 系统中的 hdisk 设置唯一的 PR_key_value. 测试心得综上述测试结果,在 SAN 环境中要注意的几点:
在没有 PowerHA 和并发应用软件的需求时,不要把一块 LUN 同时 mapping 给多个 AIX 系统,避免可能带来不必要的数据丢失。
使用 lsattr 命令检查共享 hdisk 是否支持 SCSI-3 PR 的保护策略
当前 hdisk 不支持 SCSI-3 的 保护策略,命令结果如下:
$lsattr -Rl hdisk0 -a reserve_policy
no_reserve
single_path
如果 hdisk 支持 SCSI-3 的 保护策略,我们会得到如下结果:
$lsattr -Rl hdisk8 -a reserve_policy
no_reserve
single_path
PR_exclusive
在配置来自于 SAN 的 hdisk 时,如果没有 PowerHA 和并发应用软件的需求,不要使用系统缺省值。尽量给它设置为 reserve_policy=PR_exclusive, PR_key_value, 值尽可能长一些,以免与其他系统的相同. 例如:
#chdev –l hdiskn –a PR_key_value=0x1234abcdef –a reserve_policy=PR_exclusive如果只是临时做方案验证性测试, 且没有 I/O 性能要求时,也可使用 SCSI-2 的保护方式 #chdev –l hdiskn –a reserve_policy=single_path –a algorithm=fail_over
为了保证数据的一致性和完整性,可以将卷组上的文件系统做进一步的设置, 使它无法同时 mount 在多个系统上 . 例如:
root@server1/&chfs -a mountguard=yes /sharedfs
root@server1/&mount /sharedfs
root@server2/&mount /sharedfs
mount: /dev/ttlv1 on /sharedfs
Cannot mount guarded filesystem.
The filesystem is potentially mounted on another node.
如果 AIX 系统中安装了 SDDPCM 软件,也可以使用 pcmquerypr 命令来读取,重置和清除设备上 PR 注册值,以及释放设备上的注册和保护信息。
检查 hdisk 的 PR 状态
#pcmquerypr –Vh /dev/hdiskn
清除 hdisk 上的注册和保护信息
#pcmqueyrpr –ch /dev/hdiskn
重置注册和保护信息
#pcmquerypr –ph /dev/hdiskn
其他注意事项:
在使用 PR_exclusive 和 single_path 的保护方式时, 一旦对 VG 做了 varyoffvg 操作后,hdisk 上的注册和预约保护就清除了,无需做其他操作另一 AIX 系统就可以访问 VG. 而使用 PR_shared 保护方式时,hdisk 上的注册信息在 varyoffvg 后不会清除,需使用 pcmquerypr 或 chdev 命令先清除保护,才可被其他 single_path 或 PR_exclusive 的 AIX 系统访问.
为了使用 PR_exclusive 或 PR_shared 保护策略,在为 MPIO hdisk 设置保护属性时也要同时为其设置一个 PR 值,如:
# chdev –l hdisk9 –a PR_key_value=0xabcd1234 –a reserve_policy=PR_exclusive
只有系统中 MPIO hdisk 的 reserve_policy 设置为 PR_exclusive 或 PR_shared 或 no_reserve 时,多路径算法 才可设置为 algorithm=load_balance 或 load_balance_por 或 round_robin.
# chdev –l hdisk9 –a algorithm=load_balance –a reserve_policy=PR_shared
如果系统中 MPIO hdisk 的 reserve_policy 设置是 single_path 时,该 hdisk 的路径算法就只能选择 fail_over.
#chdev –l hdisk9 –a reserve_policy = single_path –a
algorithm=fail_over总结
为了保证数据在多个 AIX 系统中的一致性, 要为 hdisk 加把”锁”. 请将 hdisk 的 reserve_policy 设为 PR_exclusive 或 single_path.
如果遇到问题请使用 pcmquerypr 命令来检查 hdisk 的保护状态.
目前 PowerHA 不支持 PR 的保护方式,根据最新的软件配置要求来设置 hdisk 的 reserve_policy.
参考资料 :本书介绍了 IBM 系列存储设备, SDDPCM 软件及相关命令的使用. 您可以利用它们来提高自己的 AIX 和存储技能。
:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。加入 。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
为灾难恢复构建应用,赢取现金大奖。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=AIX and UNIXArticleID=938910ArticleTitle=为您的磁盘加把锁publish-date=[转载]SCSI锁---转载
SCSI锁的作用:
在一个共享存储的环境下,多台前端主机可能会同时访问同一台存储设备,如果此时多台主机在同一时点上对一个LUN进行写操作,那么可想而知这个LUN将不知道哪个数据先写,哪个数据后写。为了防止这种情况发生而导致的数据损坏,所以就有了SCSI锁的概念。通过SCSI
Reservation机制来进行SCSI锁的操作,目前绝大多数的磁盘都支持‘SCSI
reservvation命令‘。如果一台主机给磁盘传输了一条SCSI
Reservation命令,则这个磁盘对于其他的主机就处于锁定状态。如果有其他的主机给已经被锁定的磁盘发送读写请求,则会收到‘reservation
conflict’报错信息。如果保留SCSI锁的主机崩溃,或者其他主机给磁盘发送‘break reservation或者reset
target命令,用来解除SCSI锁。然后,第二个主机发送I/O请求之前需要重新发送SCSI
Reservation命令给磁盘。
SCSI锁的分类:
SCSI锁有两种类型:SCSI-2 Reservation和SCSI-3
Reservation。一个LUN上只能存在一种类型的SCSI锁。
Reservation只允许设备被发出SCSI锁的Initiator访问,也就是主机的HBA。比如主机1上的HBA1对访问的LUN加上SCSI-2锁,此时即使主机1的HBA2也无法访问这个LUN。所以SCSI-2
Reservation也被称为Single Path Reservation。
SCSI-3 Reservation(Persistent Reservation)是使用PR
Key来对磁盘进行加锁。通常一台Host会有唯一的PR Key,不同的主机对应的PR Key也不同。所以一般SCSI-3
Reservation通常被应用在多通路的共享环境下面。这里SCSI-3 Reservation也称之为Persistent
Reservation。
Cluster中的SCSI锁:
Windows 2003集群中使用SCSI-2
reserve/release命令。作为非持久的reservation,所以集群中的一台节点会持有SCSI-2
Reservation的锁,然后每过3秒会重新刷新一次。如果故障转移发生,则切换节点主机会在相应的磁盘上放置SCSI-2
Reservation然后维护SCSI锁。如果所有节点主机上的集群服务都会关闭,Reservation也不会保留。
Windows 2008集群中使用SCSI-3 persistent
reservation机制。如果磁盘从主机上没有正确移除,集群使用的磁盘(Cluster
Disk)会保留着这些Reservation。锁对应的SCSI锁会一直存在于相应的磁盘之上,即使集群服务被关闭或者磁盘对于主机取消掩饰(unmasked)。所以,有些时候需要强行移除磁盘上的Reservation。
在Windows环境中,移除Reservation移除的命令是(disknumber可以在Windows的Disk
Management中找到)
火星高科是国内最早从事专业存储技术的研发团队之一,是集生产、研发、设计和制造为一体的高科技IT企业,是数据存储、备份和容灾等领域国内最知名的软件开发商和设备制造商,也是数据安全领域重要的国产解决方案提供商。相继打造了以"火星Mars"为品牌的系列软件及"火星舱"硬件产品。全国免费咨询电话:400-610-9901&
火星舱备份一体机作为一款国内领先的数据备份设备,集备份服务器、磁盘备份空间和备份软件于一体,突破了传统备份系统分离式部署的格局,大大减低了备份系统的部署难度和操作难度,使用户真正达到了"数据安全、简单易备"的真实效果。火星舱备份一体机采用高性能的硬件配置,与存储备份管理软件火星企业级跨平台数据备份软件(Mars
Backup advanced
简称:MBA)无缝结合,经过反复测试及优化,将两者有机的结合在一起。火星舱备份一体机具有最广泛的备份功能,可满足大中型企业组织机构异构环境的复杂需求,包括从
Windows 、 Linux 到Unix操作系统平台,Oracle、Sybase、SQL
Server、MySQL、ExchangServer、Domino等各种主流数据库和应用软件,支持各种物理环境和虚拟环境备份,简化虚拟服务器的数据保护过程。火星舱同时支持iSCSI、FC、FCoE。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。存储知识整理-爱编程
存储知识整理
一、数据存储类型
数据存储常见的类型有数据块存储、文件方式存储、对象存储。块存储和文件存储就是通常说的SAN和NAS,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device),简称OSD。
块概念(block):块是指以扇区为基础,一个或多个连续的扇区组成的一个块,也叫物理块。它存在于文件系统和块设备之间。
块存储主要是将裸磁盘空间整个映射给主机使用,在这种方式下,操作系统还需要对挂载的裸硬盘进行分区,格式化后,才能使用,与平常主机内置硬盘的方式没有差别。块存储的主要特点是:主机之间的数据共享困难:因为块存储裸盘映射给主机,需要格式化后使用,所以不同操作系统主机之间无法共享数据。
2. 文件存储
文件级概念:文件级是指文件系统,单个文件可能由于一个或多个逻辑块组成,且逻辑块之间是不连续分布,逻辑块大于或等于物理块整数倍,物理块与文件系统之间的映射关系:扇区-&物理块-&逻辑块-&文件系统。
为了克服数据无法共享的问题,所以有了文件系统。文件存储服务器实现了文件管理功能,即具有文件系统。所以,与块存储不同,主机使用文件存储设备不需要再对文件存储进行格式化。
文件存储最常见的一种方式就是NAS,它是一种网络存储系统,提供文件访问的服务,采用NFS/CIFS等协议,通过TCP/IP进行网络传输。由于采用标准文件协议,在不同主机之间共享数据非常简单,但是由于NAS的协议开销大,延时大,不利于高性能集群和大量小文件存储模式。
3. 对象存储
综上所述,由于块存储和文件存储都存在一定的固有缺陷,但对存储系统的高性能和数据共享的需求不断增加,因此,对象存储应运而生。简单来说,对象存储克服了块存储和文件存储各自的缺点,发扬了它们各自的优点,是一种读写快,又利于共享的存储方式。目前对象存储系统已成为云存储的主流选择,开源系统中有ceph,glusterfs等。
对象存储系统一般由元数据服务器、数据存储服务器和客户端组成。元数据服务器负责管理文件的存储位置、状态等,同时管理数据存储服务器对外提供读写访问功能,数据存储服务器负责文件数据的存储,客户端则负责对外接口访问。
二、DAS/NAS/SAN/对象存储
首先按照服务器类型来分,存储可分为封闭系统的存储和开放系统的存储,封闭系统主要是指大型机,开放系统指基于Windows、UNIX、Linux等操作系统的服务器;开放系统的存储又分为内置存储和外挂存储,开放系统的外挂存储根据连接的方式又分为:直连式存储(Direct-Attached Storage 简称DAS)和网络化存储(Fabric-Attached Storage 简称FAS);开放系统的网络化存储根据传输协议又分为:网络附加存储(Network-Attached Storage 简称NAS)和存储区域网络(Storage Area Network 简称SAN)。
DAS(Direct Attached Storage)即“直接连接存储”,是指将外置存储设备通过连接线缆,直接连接到一台计算机上。DAS不算是网络存储,因为只有它所挂载的主机才可访问它。也就是说,服务器发生故障时,连接在服务器上的DAS存储设备中的数据暂时不能被存取。
DAS这种存储方式与我们普通的PC存储架构一样,外部存储设备都是直接挂载在服务器内部总线上,采用SCSI技术,或者FC技术,数据存储设备是整个服务器结构的一部分,在这种情况下往往是数据和操作系统都未分离。
DAS这种直连方式,能够解决单台服务器的存储空间扩展、高性能传输需求。DAS存储更多是依赖服务器主机操作系统进行数据的IO读写和存储维护管理,其本身是硬件的堆叠,不带有任何存储操作系统,数据备份和恢复要求占用服务器主机资源(包括CPU,系统IO等)。直连式存储的数据量越大,备份和恢复的时间就越长,对服务器硬件的依赖性和影响就越大。
NAS(Network Attached Storage)网络附加存储,一种网络存储系统,提供文件访问的服务。简单讲,NAS就是通过网络共享出来的文件系统,其共享的协议如NFS、CIFS、FTP、HTTP等,通过TCP/IP进行网络传输,是文件系统处于网络上的远端的存储系统。由于其文件系统运行在存储服务器上,由文件系统实现了命名空间、存储空间等管理,可以保障文件的共享,成为其最显著的优点。但也由于这些管理的开销,导致了NAS的性能、扩展性相对较弱,成为了NAS的劣势,简单来说NAS就是一台在网络上提供文档共享服务的网络存储服务器。
SAN(Storage Area Network)存储局域网络,一种专用网络连接存储设备,位于主机服务器的后端,主机之间可通过存储网络来共享存储空间,是一个集中式管理的高速存储网络。目前的SAN存储有两种:一是基于光纤通道的FC SAN;二是基于以太网的IP SAN(也就是常说的iSCSI),都是将存储系统以块的方式提供给网络上其他应用。SAN的概念是允许存储设备和处理器(服务器)之间建立直接的高速网络连接。其高速网络、直接块级访问保证了SAN的高性能,但由于应用服务器运行文件系统,所以块设备无法直接给其他应用提供共享能力,限制了其应用场景。
4. 对象存储
对象存储系统是综合了NAS和SAN的优点,同时又具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可靠性、跨平台以及安全的数据空想的存储体系结构。
对象存储结构的核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。
对象存储的典型架构如上图所示,由对象、元数据服务器、对象存储设备(OSD)、对象存储系统的客户端通过互联网络组成。元数据服务器和OSD为客户端提供元数据服务和数据服务,客户端对外接口呈现为对象存储系统。对象存储系统将元数据和数据分离,避免NAS提供数据和元数据服务引起的性能瓶颈问题。一方面,元数据服务器只提供元数据服务,其流量压力较小,而数据传输只发生在客户端和OSD存储设备上,充分发挥多OSD的并发IO性能;另一方面,OSD分担了存储系统大量的,面向磁盘一级的元数据管理功能,而这一块内容证实文件系统最主要的管理开销所在,由于分担了这些管理功能,因此元数据服务器不会成为系统的性能瓶颈。
& & 对象(Object)是对象存储的基本单元,一个对象实际上就是文件的数据和一组属性信息(Meta data)的组合。这些属性可以定义基于文件的RAID参数,数据分布和服务质量等。而传统的存储系统中用文件或块作为基本的存储单位,在块存储系统中还需要始终追踪系统中每个块的属性,对象通过与存储系统通信维护自己的属性,从而简化了存储系统的管理任务,增加了灵活性。在存储设备中,所有对象都有一个对象标识,通过对象标识命令访问该对象。通常有多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属性,组对象是存储设备上共享资源管理策略的对象集合等。Object的大小可以不同,可以包含整个数据结构,如文件、数据库表项等。
对象存储设备
& & 对象存储设备也叫智能存储设备它有自己的CPU,内存和网络系统,负责管理本地的Object,时对象存储系统的核心。OSD同块设备的不同不在于存储介质,而在于两者提供的访问借口,OSD主要包括数据存储和安全访问功能,OSD使用Object对所保存的数据进行管理。它将数据存放到磁盘的磁道和扇区,将若干磁道和扇区组合起来构成Object,并且通过此Object向外界提供对数据的访问。每个Object同传统的文件相似,使用同文件类似的访问接口,包括Open、Read、Write等。但是两者并不相同,每个Object可能包括若干个文件,也可能是某个文件的一部分,且是独立于操作系统的。除了具体的用户数据外,OSD还记录了每个Object的属性信息,主要是物理视图信息,将这些信息放到OSD上,大大减轻了元数据服务器的负担,增强了整个存储系统的并行访问性能和可扩展性。
元数据服务器
& & 元数据服务器(Metadata Server,MDS)控制client与OSD对象的交互,主要提供以下几个功能
& & (1)对象存储访问:为客户端提供元数据,主要是文件的逻辑视图,包括文件与目录的组织关系,每个文件所对应的OSD等。允许Client直接访问对象,MDS为client提供访问该文件所含对象的能力,OSD在接收到每个请求时将先验证该能力,然后才可以访问。
& & (2)文件目录访问管理:MDS在存储系统上构建一个文件结构,包括限额控制、目录和文件的创建和删除、访问控制等。
& & (3)client cache一致性
& & 为乐提高client性能,在对象存储系统设计时通畅支持client方的cache。由于引入client的cache,带来了cache的一致性文件,MDS支持基于client的文件cache。当cache的文件发生改变时,将通知client刷新cache,从而防止cache不一致引发的问题。当多个客户端同时访问某些数据时,MDS提供分布的锁机制来确保cache的一致性。
对象存储系统的客户端
& & 为乐有效支持client访问OSD上的对象,需要在计算节点实现对象存储系统的client,通畅提供POSIX文件系统接口,允许应用程序像执行标准的文件系统操作一样。
& & (1)分布元数据:传统的存储结构元数据服务器通畅提供两个主要功能,一是为计算节点提供一个存储数据的逻辑视图(Virtual File System, VFS层),文件名列表及目录结构;二是组织物理存储介质的数据分布(inode层)。对象存储结构将存储数据的逻辑视图与物理视图分开,炳将负载分布,避免元数据服务器引起的瓶颈。元数据的VFS部分通常是元数据服务器的10%的负载,剩下的90%工作(inode部分)是在存储介质块的数据物理分布上完成的。在对象存储结构中,inode工作分布到每个智能化的OSD,每个OSD负责管理数据分布和检索,这样90%的元数据管理工作分布到智能的存储设备,从而提高了系统元数据管理的性能。另外,分布的元数据管理,在增加更多的OSD到系统中,可以同时增加元数据的性能和系统存储容量。
& & (2)并发数据访问:对象存储体系结构定义了一个新的,更加智能话的磁盘接口OSD,OSD是雨网络连接的设备,它自身包含存储介质,如磁盘或磁带,并具有足够的智能可以管理本地存储的数据,计算节点直接与OSD通信,访问它存储的数据。由于OSD具有智能,因此不需要文件服务器的介入。如果将文件系统的数据分布在多个OSD上,则聚合I/O速率和数据吞吐率讲线性增长,对绝大多数Linux集群应用来说,持续的I/O聚合带宽和吞吐率对较多数目的计算节点是非常重要的。对象存储结构提供的性能是目前其他存储结构难以达到的。
=============================================
综上所述,对象存储系统可以理解为数据和控制分离,基于智能存储设备提供的数据存储访问能力,具备更好横向容量、性能扩展能力、提供高性能、可共享的数据存储服务的存储系统和架构,其架构的优越性成为大数据存储的最优选择。
.cn/281/.shtml
http://blog.csdn.net/liuaigui/article/details/
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。

我要回帖

更多关于 相机存储卡被锁定 的文章

 

随机推荐