sea-monsters 发表于 2012-9-1 10:41

Win 8新技术深入探讨系列(四)——存储空间

本帖最后由 sea-monsters 于 2012-11-24 18:01 编辑

随着硬盘技术的发展,大家的电脑里面外储存器的容量都在快速增长。面对着庞大的存储空间和繁多的文件,如何管理,如何对其进行保护就成了一个棘手的问题。微软从Windows Home Server系列开始,就着手为普通用户提供对大而复杂的储存区的管理程序,在Windows Home Server上,这个程序是驱动器扩展(Drive Extender),后来被停止开发了。而在Win 8上,微软进一步发展,给我们带来了存储空间(Storage Space),旨在为用户解决大而多的储存器的管理问题。下面我们来看一下这个新用于客户版系统的功能吧。
首先,我们需要理解一下在存储空间里面出现的几个名词:
存储池:这是一系列可以由不同大小和类型的驱动器构成的一个整体储存概念。驱动器可以是SATA驱动器、USB驱动器、SAS驱动器等。在一个存储池里,可以有任意数量的实际物理驱动器被包含在内。
存储空间:这是一个由存储池构成的空间,存储池的数量可以任意设定。整个空间会以精简配置(Thin Provisioning)原则运行,给用户提供一个无视物理结构、快速、无碎片的储存环境,而且自带有预防底层物理介质故障的复原功能。一个用户可以有数个存储空间,一个硬盘阵列也可以有数个存储空间。
用一些图片来解释一下这个概念。对一般用户来说,几个硬盘可以组成一个硬盘冗余阵列(RAID),这是一种组合方式,让数个硬盘共同工作以提高速度或者安全性。而在存储空间里,这个概念是软件上的,硬件层面并没有一个协议来配合工作,实际上任意电脑里的数个硬盘就可以看做一个存储池,如下图所示,实际应用的时候容量可以不一样。http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/1667.1_2D00_My_2D00_Home_2D00_Storage_2D00_Pool.jpg_5F00_12D914AD.png
但是,对于一般用户,我们对这个物理概念不需要碰到,这是因为在这个层面以上,系统用一个逻辑上的存储空间概念来管理驱动器,并在逻辑概念上提供精简配置和镜像功能。因此我们在使用电脑的时候,对存储空间里面的驱动器并不清楚可见每一个设备,我们管理的是整个整体的空间。http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/8508.2_2D00_MyHome_2D00_Storage_2D00_Pool_5F00_44648242.png
从上面的图我们可以看到,在两个2TB的硬盘上,我们建立起一个10TB的存储空间。可能有人会问,怎么可能逻辑上的概念能够扩展物理容量?实际上,硬盘空间并没有扩展,这个效果就是精简配置给我们带来的。精简配置就是说系统只在必须调用存储空间的时候才为系统提供,而一旦删除文件,空间立刻被回收。这些回收的容量之后可供该空间,或从同一池中划分出的其他空间使用。而当实际容量由于存入文件被接近的时候,系统会提示用户容量将要用尽的提示,而且在这时候继续往存储空间里存放文件,复制移动的进度将永远被卡死在0%的进度上。http://img.technospot.net/Zero-Diskspace-on-Storage-Stuck-Copy-process.png

这时候只需接入新的驱动器,由于原有的存储空间定义容量可以远大于实际容量,这个操作对空间毫无影响,用户端看到的只是提示消失,其余一切都照旧。在这个例子中,我们可以一直接入新的驱动器,加入原先定义的“文档”存储空间,直到容量达到定义的10TB。当然,存储空间的容量是灵活的,我们还可以在达到定义容量之后继续对其操作来扩充逻辑空间的容量。http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/3324.3_2D00_My_2D00_Home_2D00_Storage_2D00_Pool_5F00_7904DE7D.png
另外,存储空间还有一个可选功能:镜像空间。当存储空间选择打开这个功能,当你的电脑里有超过一个驱动器,并且空间允许,存储空间会默认产生空间内的文件备份。也就是说,如果用户对某一部分磁盘创建了存储池并接入了存储空间,这部分文件就不需要再另行备份了,除非存储池接近存满。这时候,只要半数以上的驱动器能正常工作,对用户来说,一切文件均可正常使用。一旦存储池内有硬盘出现问题,用户所需做的只是将出问题的驱动器取下,换上一个新的驱动器(容量无所谓),然后一切如常。因为文件的自动冗余,取下坏磁盘并不影响文件的正常读取。换言之,即使池中的某些物理磁盘发生故障,也完全不会对其他 Windows 组件或应用程序产生影响。它们将继续在空间中运行,而事实上是存储空间在后台默默地维持着数据的可用性。此外,当发生磁盘故障时,只要该池中具有足够的可用替代物理磁盘,存储空间就将针对所有受到影响的空间自动生成数据副本。整个存储空间的镜像保存不需要我们自己定义储存位置,系统会自动以一个性能和安全性均优化的方式自动选择备份方式。
下面详细的说说里面用到的两种备份方式:镜像以及奇偶校验。
通过镜像复原
下图展示了如何通过双磁盘池构建(双副本)镜像空间:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/7115.4_2D00_Mirrored_2D00_space_2D00_in_2D00_a_2D00_two_2D00_disk_2D00_pool_5F00_31AF888B.png
在本例中,存储空间以 256MB 的倍数(我们称其为“底板”)为单位为镜像空间分配物理容量。此外,对于此具体示例,每个底板都会将其一半分别镜像到两个独立的磁盘上。即使其中一个磁盘发生故障,存储空间也可以继续提供数据,因为未发生故障的物理磁盘上仍保存着数据的至少一个副本。当存在多个可用磁盘时,存储空间会将底板分布到多个适用的磁盘上,如下图的六磁盘池所示:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/3731.5_2D00_Mirrored_2D00_space_2D00_in_2D00_a_2D00_six_2D00_disk_2D00_pool_5F00_2A24191E.png
如果池磁盘发生故障,存储空间会针对所有使用故障磁盘的空间识别受到影响的底板,并将它们重新分配给池中任何可用的热备援磁盘(hot-spares)或任何其他适用的磁盘(热备援磁盘是池中的保留磁盘,仅用于自动替换故障磁盘)。这种自我修复机制会自动且透明地执行,因此可在最大程度上减少人为干预的需要。微软还优化了速度,以防止多个硬件同时发生故障时产生的数据丢失。
通过奇偶校验复原
启用该功能后,除了空间中包含的用户数据以外,存储空间还将保存一些额外的信息,以便在发生物理磁盘故障时自动复原数据。基于奇偶校验的复原在概念上与镜像相似,但对容量的利用效率比镜像空间更高,同时随机的 I/O 负载也更高。奇偶校验空间非常适合存储容量需求高,顺序(追加居多)写入请求多,并且几乎不对现有内容进行更新的数据,例如:较大的家庭录像。
类似镜像空间,奇偶校验空间的底板也分布于多个可用磁盘中(包括用于奇偶校验信息的容量),下图展示了六磁盘池中包含的一个奇偶校验空间:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/5556.6_2D00_Parity_2D00_space_2D00_in_2D00_a_2D00_six_2D00_disk_2D00_pool_5F00_70A10926.png
当磁盘发生故障时,奇偶校验空间将自动且透明地完成恢复,这一点和镜像空间完全相同。对于奇偶校验空间,存储空间会利用奇偶校验信息针对所有受到影响的空间重新构建受到影响的底板,然后自动重新分配底板,以便利用该池中的任何可用热备援磁盘或任何其他适用的磁盘(与镜像空间相同)
前面说了那么多,下面我们来一边动手,一边来看看这个功能吧。创建一个存储空间首先前提是有至少一个刚刚格式化过的驱动器(否则创建的时候系统会自动格式化),然后我们可以通过PowerShell或者控制面板的“存储空间”功能来创建。我们先来看看PowerShell如果操作。实际上很简单,两步就可以解决。这个例子是将所有物理磁盘均用于创建存储池,并从存储池上划分出两个存储空间,每一个10TB大小。
1) 创建存储池:
   
>$pd = Get-PhysicalDisk      

   
>New-StoragePool -PhysicalDisks $pd –StorageSubSystemFriendlyName
*Spaces* -FriendlyName “My Home Storage”


2) 创建两个空间:
   
>New-VirtualDisk –StoragePoolFriendlyName “My Home Storage”
–ResiliencySettingName Mirror –Size 10TB –Provisioningtype Thin –FriendlyName
“Documents”      

>New-VirtualDisk
–StoragePoolFriendlyName “My Home Storage” –ResiliencySettingName Parity –Size
50TB –Provisioningtype Thin –FriendlyName “Multimedia”


而控制面板的创建简单很多,直接在“系统与安全”里面找到“存储空间”,打开就可以看到“创建一个新的池和存储空间”的选项。(截图为测试版Win 8)http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/6136.8_2D00_Manage_2D00_Storage_2D00_Spaces_5F00_760F79CA.png
点击一下,选择需要加入的驱动器就可以。注意需要过程格式化,请自行备份文件。这一步完成就将驱动器构成存储池了。http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/8270.9_2D00_Creating_2D00_a_2D00_storage_2D00_pool_5F00_78D52EBD.png
然后选择好要新建的存储空间的属性,点击“创建存储空间”,就完成了。http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/0160.10_2D00_Adding_2D00_drives_2D00_to_2D00_a_2D00_pool_5F00_25EA1B8C.png
在这一步的时候,我们可以自己选择是否需要备份,并且以什么方式备份我们的文件。选择有两种:镜像备份或者奇偶校验备份。http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/8662.13_2D00_Adding_2D00_drives_5F00_75076420.png
之后在资源管理器里面,原来的盘符不再存在,而被新的存储空间取代。操作很简单吧?当然,如果有需要,就按照旧的方式给存储空间加上Bitlocker就是。存储空间所带来的最大的便利就是将多而繁杂的硬盘限制消除了,与此同时,所有物理硬盘的操作都照旧。http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/0310.20_2D00_Turning_2D00_on_2D00_BitLocker_5F00_0335B744.png
在使用这个功能的时候,有几个要注意的地方:
1、Windows Home Server的驱动扩展器不能被迁移到存储空间里。如有必要,只能自行备份重新创建。
2、存储池跟RAID并不一样,但是存储空间的存储速度可以与RAID0或者RAID10相接近。另外,如果硬盘以RAID的模式接入存储空间会由于复杂性问题反而造成性能下降。
3、Windows启动盘不能被加入存储空间中。
4、通过存储空间界面,可以随时知道驱动器是否发生故障。当有提示显示的时候,就是时候检查驱动器了。http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/7840.23_2D00_Failed_2D00_disks_5F00_7C822C42.png
5、如果创建了备份空间,那么随时都可以将少于半数的驱动器取下更换成新的驱动器,这并不影响文件的使用。
6、不需要对存储空间运行磁盘检查,系统会自行检查问题并提示。
7、存储池可以在电脑之间移动,只需要将所有涉及到的驱动器都移到新电脑上即可。
8、Windows 7不能读取存储池,涉及的硬盘会显示为“无法识别的格式”,如需使用,只能格式化或者利用第三方程序来读写。
这就是这一期给大家带来的Win 8新功能,是不是看起来相当方便呢?实际上Win 8有很多不错的改进,期待大家的分享啊~感谢关注本期内容~{:5_596:}

版权归楼主所有,转载请注明出处。
往期链接:
第一期——快速启动:https://bbs.pcbeta.com/viewthread-1120855-1-1.html
第二期——文件历史记录:https://bbs.pcbeta.com/viewthread-1121697-1-1.html
第三期——Windows to Go:https://bbs.pcbeta.com/viewthread-1123459-1-1.html

chienjy 发表于 2012-9-1 12:00

非常值得学习与收藏 ! 谢谢楼主 !

参天的树 发表于 2012-9-1 12:03

学习了 好有深度 谢谢{:5_293:}

sasalemma 发表于 2012-9-1 12:03

这货对于增删磁盘比较容易丢数据~其他还是好的~

dup_pu8bde 发表于 2012-9-1 12:10

单ssd单分区单系统,无缘

linee 发表于 2012-9-1 12:28

先支持, 再慢慢看.

wrr676 发表于 2012-9-1 12:41

对于单个硬盘有用吗?

jjxtrotter 发表于 2012-9-1 12:46

前排支持,这个系列不错,希望以后能有更多这样的技术性的文章

vivafirst 发表于 2012-9-1 12:51

收藏保存了

yeshan 发表于 2012-9-1 12:51

收藏之~~

linboomy 发表于 2012-9-1 12:52

认真看完了 感觉意义不大

飘逸~┰⌒~ 发表于 2012-9-1 12:54

学习学习,支持下

大大罗罗 发表于 2012-9-1 13:03

表示小白看不懂

seraphdoo 发表于 2012-9-1 13:04

看起来并不是特别的方便,还是比较繁琐的,特别是对于家庭用户来说

番薯王 发表于 2012-9-1 13:31

小白大概扫了一下,感觉有点不知所云{:5_586:}

qj1999 发表于 2012-9-1 13:32

hszt71 发表于 2012-9-1 13:35

一直都是一块硬盘的路过。{:5_297:}

spawn4 发表于 2012-9-1 13:51

lz再接再厉。

peterwjc 发表于 2012-9-1 14:00

好有深度。字太多。

piggy123 发表于 2012-9-1 14:06

看了一会儿,有点看明白了
页: [1] 2 3 4 5 6 7
查看完整版本: Win 8新技术深入探讨系列(四)——存储空间