Chinaunix

标题: OpenSolaris新特性解析之二:ZFS(更新完成) [打印本页]

作者: niupigege    时间: 2008-08-05 22:57
标题: OpenSolaris新特性解析之二:ZFS(更新完成)
该系列以前的文章:  
OpenSolaris新特性解析之一: opensolaris之前身今世 http://bbs.chinaunix.net/viewthread.php?tid=1221539

这篇帖子我想介绍下ZFS,这个文件系统LINUX的老大LINUS眼馋好久了,他想把ZFS移植到LINUX,取代EXT3,成为下一代LINUX内核默认的文件系统,好像两边的老大一直在讨论这个事情,也不知道现在商量得怎么样了,呵呵。

在具体解释之前,先说说传统文件系统和卷管理的一些缺点。

我们知道在NTFS和EXT3里面我们划分分区的时候,分区的大小在那个时候就定义好了,比如我们在windows下面把硬盘划了2个区,一个C盘,一个D盘,我们在进行分区的时候就把C和D的大小都定义好了,比如C盘20个G,D盘20个G,以后随着我们不断的安装软件,下载电影,C盘的空间越来越小,终于有一天,C盘的空间只有1个G不到了,如果我们这个时候要安装个2个G的软件,这个软件只能安装到C盘,那我们的空间就不够了,但是这个时候我们的D盘还有10个G的空间,这真是让人烦,明明我的硬盘还有剩余的空间,但是我的软件却安装不上了,有的朋友说这个不要紧,用PGMAGIC,重新划分空间,但是对于企业级的服务器,你敢这样用吗?这是问题之一。

在企业应用里面,还有一个比较常见的问题,比如我有个专门存储数据的硬盘,这个硬盘平时挂载在/data之下,随着企业的数据越来越多,这个盘迟早有装满的一天,这个时候我想加块硬盘,把这两块硬盘都挂载到/data之下,并且骗过操作系统,让操作系统认为在/data下面只有一块连续的硬盘,针对这种应用,卷管理应时而生,但是卷管理过程和命令常常比较复杂,让人觉得这个东西不是好弄的。这是问题之二。

针对这两个问题,企业级的文件系统ZFS诞生了,不得不说这又是SUN的一次杰作。

ZFS的设计思想认为我们对硬盘的访问为什么不能就像我们对内存的访问一样,我们的数据存储在内存中时,并不会说内存条上的那个CHIP满了我们的数据就不能放了,只要整个内存还有空间我们的数据就能够放入内存(和问题一对应)。如果我们的内存不够了,我们只需要加根内存条就能够使用了,操作系统并不会认为这根内存条和以前的内存条有什么不同。(对应问题二)。

好了,弄清楚了ZFS的设计思路,我们可以说些ZFS的细节。

ZFS是一个128位的文件系统,存储量级是Zetta级,1Z=1024的3次方个T,而一个T又等于1024个G,我们可以看出zfs是一个海量级的文件系统。有的朋友可能要说搞得那么大有什么用,我们先看看16位的文件系统是个什么情况,我们现在的高清电影一集就是4.3个G左右,在16位的文件系统里面能存得下吗?我们知道2的32次方才等于4G,也就是说要存放这样的高清电影,32位的文件是最低配置,否则如果单个文件就超过4G,那32位的文件系统是支持不了的。那对于我们的企业应用又如何呢?我们所使用的数据库在物理上都是对应的数据库文件,如果企业和科学研究的数据量很大,单个数据库文件的大小至少上百个G,所以我们知道ZFS的128设计的好处了,按照128位的宽度,用zfs存放整个地球的信息都是没有问题的。

在ZFS的架构里,最下面是存储池,所有的存储介质都放在这个存储介质里面,然后再在这个存储池上面布ZFS的文件系统,为了说明问题,让我们先看一个例子,大家如果能做一做,我相信不会浪费大家的时间。

先切换到root用户
#su

我们使用文件盘而不是实际的物理硬盘来建立存储池,当然使用物理盘也是一样的,我们先建立5个文件盘,每个文件盘100M
#mkfile 100M disk1 disk2 disk3 disk4 disk5

接着我们利用zpool create命令来使用这些文件盘建立存储池tank,注意了在ZFS里面是不需要对磁盘进行分区和格式化的,系统会为我们做这一切的工作,并且速度很快.
#zpool create tank `pwd`/disk1 `pwd`/disk2 (这里你可以只使用disk1,zpool create tank `pwd`/disk1,也可以5个磁盘全用,zpool create tank `pwd`/disk1......`pwd`/disk5)

在这个命令之后我们利用zpool list来查看
#zpool list
结果如下,可以看到ZFS的存储池tank已经建立好了
NAME SIZE USED AVAILBLE CAP HEALTH ALTROOT
tank  191M 95.5K   191M     ...........

在我们创建ZFS存储池的时候,系统已经默认在这个存储池上面创建了一个ZFS系统,名字和存储池的名字一样,并且已经为我们挂载好了,方便吧,并且这种挂载是持久的,也就是说我们重启后,这种挂载关系还在,并不需要我们去修改vfstable之类的文件,我们用zfs list来查看
#zfs list
结果如下,其中根目录下的tank目录是系统自动为我们创建的,不需要我们手动
NAME USED AVAIL REFER MOUNTPOINT
TANK  108K 159M 18K      /tank

接下来我们可以根据自己的需要在这个存储池上创建其他的ZFS文件系统。
#zfs create tank/test1     (tank是存储池的名字,表明我们要在tank这个存储池上建立test1这个ZFS文件系统)
相应的我们可以创建test2
#zfs create tank/test2
用zfs list来看下效果
NAME         USED AVAIL REFER MOUNTPOINT
TANK         108K 159M  18K      /tank
tank/test1   18K  159M  18K      /tank/test1
tank/test2   18K  159M  18K      /tank/test2
这里需要注意两点:一是/tank/test1这样的目录是系统自动为我们创建和挂载的,二是我们可以看到test1和test2他们的可用空间是一样的,都等于存储池的可用空间159M,这样就解决了我们前面提到的问题一,在ZFS里面分区的大小是自动扩展的,并不象windows和linux一样,需要事先确定。


我们也可以动态设置ZFS文件系统的挂载点,比如:
#zfs set mountpoint=/mnt tank/test1
#zfs list
NAME         USED AVAIL REFER MOUNTPOINT
TANK         108K 159M  18K      /tank
tank/test1   18K  159M  18K      /mnt
tank/test2   18K  159M  18K      /tank/test2
改变之后的挂载关系也是持久的,重启之后也会保持,不需要我们去改变vfstable之类的文件。

下面我们说说前面提到的第二个问题在ZFS里面的解决办法,如果disk1和disk2都被用完了,我想要加硬盘怎么办?这在ZFS里面很简单
#zpool add tank `pwd`/disk3   (将disk3加入到tank这个存储池里面)
#zpool list
NAME SIZE USED AVAILBLE CAP HEALTH ALTROOT
tank  286M 185K   286M     ...........
我们可以看到存储池的可用空间已经变大,我们还可以详细看看
#zpool status
这个命令的输出比较长,我就不列出来了,在里面我们可以看到在存储池里面有disk1 disk2 disk3三个盘。
前面提到的问题二,我们看到在ZFS里面有了非常简洁的解决办法。

如果我要撤销ZFS的文件系统怎么办呢?2个命令就可以非常干净的把ZFS撤销掉
#zfs destroy tank/test1
#zfs destroy tank/test2
#zpool destroy tank
总的思路就是先撤销掉ZFS文件系统,用zfs destroy命令,然后撤销掉ZFS文件系统使用的存储池,用zpool destroy命令。

ZFS的用法就介绍到这里,更多的用法如何配置raid之类的,可以下载附件,总的来讲ZFS的使用是非常简单的。

最后想介绍下ZFS系统的一些设计原理,1是自我恢复,2是事务性的操作。这部分光说不容易说清楚,上几个图。

先看图1,ZFS里面我们的每一个文件的内容,ZFS都会帮我们存放一个校验和,这个校验和存放在这个文件的父目录的文件节点里,再看图2,
在传统的mirror设置里面,如果有一个盘里面的数据是坏的,系统并不能够检查出来,如果运气不好,应用程序可能会在存放坏数据的那个盘里面去读,这样读出来的就是坏数据,并且可能导致应用程序和OS的崩溃。我们再看图3,在ZFS里面如果遇到这样的情况,校验和会告诉系统说目前读到的数据是坏数据,这时系统会自动到另外一个盘里面去拿数据,并且在把另一个盘里面的数据向上传给应用程序的同时,会用好数据覆盖掉mirror盘里面的坏数据。这就是自我恢复。

关于事务性的操作,我们可以看图4,ZFS里面所有的操作都是事务性的,要么全做,要么不做,这就保证了我们文件系统的完整性。比如我们要修改图4里面左下方的两个文件,系统会在修改之前,先将这两个文件做拷贝,这就是copy on write,拷贝出来后,在拷贝的附件里面做我们的修改,只有等修改完成后,才会将这两个文件的父目录做一个拷贝,然后在拷贝里面作出修改,将文件指针指向最新的两个文件,这样的过程依次上推,直到根目录,根目录不会做拷贝的动作,直接是一个原子操作,将文件指针指向最新的节点,完成所有的修改操作。大家可以看到在这个过程中的任何一部掉电都不会影响到我们系统的文件完整性。

这部分就基本上更新完成了,后面我会写这个系列的第三部OpenSolaris新特性解析之三:SMF

[ 本帖最后由 nimysun 于 2008-9-10 22:52 编辑 ]

1.png (9.53 KB, 下载次数: 173)

1.png

2.png (83.65 KB, 下载次数: 151)

2.png

3.png (81.92 KB, 下载次数: 153)

3.png

4.png (8.57 KB, 下载次数: 143)

4.png

zfsadmin_0817.pdf

971.51 KB, 下载次数: 669

ZFS_Demo.pdf

69.01 KB, 下载次数: 532


作者: yuhuohu    时间: 2008-08-06 10:33

作者: yoyosys    时间: 2008-08-06 14:54
还有先不写,就占位的啊
作者: niupigege    时间: 2008-08-06 20:27
8月6日更新,加入ZFS为什么诞生
作者: twlogin    时间: 2008-08-06 21:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: yuhuohu    时间: 2008-08-06 22:10
很好 very good 大;大力支持
作者: yoyosys    时间: 2008-08-07 11:09
通俗易懂,好!
作者: wstar    时间: 2008-08-07 16:49
期待楼主的新作快出来啊。
作者: niupigege    时间: 2008-08-07 23:35
8月7日更新,加入ZFS创建操作的命令
作者: race    时间: 2008-08-08 08:45
docs.sun.com上有ZFS专题文档,管理的书都有。
作者: yoyosys    时间: 2008-08-08 09:02
毕竟LZ原创的啊,支持
作者: yuhuohu    时间: 2008-08-08 09:12
原帖由 race 于 2008-8-8 08:45 发表
docs.sun.com上有ZFS专题文档,管理的书都有。



老大不能这么说,牛皮写的挺好,比官方的好看多了
作者: 孔方兄    时间: 2008-08-08 12:53
希望再接再厉上些真正使用测试经验:)

我们的测试来看,感觉还不错,跑了数据库测试,效率和管理都挺好;只是ZFS很吃内存,不改缺省参数,系统剩下的几个G的内存全被它吃了,,,开始还很奇怪;其实ZFS就是用内存来做硬盘文件系统的cache,提高效率想。
作者: fuckipput    时间: 2008-08-09 13:59
标题: niupi
对啊对啊,能有跑应用的测试信息就跟好了,希望lz继续更新完善啊
作者: niupigege    时间: 2008-08-10 16:35
呵呵,好的,我会在后面加些这方面的信息
作者: yuhuohu    时间: 2008-08-11 22:44
牛皮这个懒蛋啊。又跳票了。。。

更新,要求更新,最少15000字的说~
作者: hexilanlan    时间: 2008-08-12 17:08
好东西。。。。。
要求更新啊。。。。。。:em11: :em11: :em11: :em11:
作者: hexilanlan    时间: 2008-08-12 17:45
老大,我zpool create建了 disk1 disk2 disk3


怎么删除他们啊?
我rm -r ;mount tank.
还能用zfs 和zpool看到。
作者: niupigege    时间: 2008-08-12 21:09
各位老大,这两天在外面出差,要周末才能回去,辛苦阿,呵呵,回去立马给大家补起
作者: niupigege    时间: 2008-08-12 21:10
原帖由 hexilanlan 于 2008-8-12 17:45 发表
老大,我zpool create建了 disk1 disk2 disk3


怎么删除他们啊?
我rm -r ;mount tank.
还能用zfs 和zpool看到。


ZFS的删除有自己的命令,不能这样删除,我后去后会把这部分补起来
作者: yuhuohu    时间: 2008-08-12 22:00
原帖由 hexilanlan 于 2008-8-12 17:45 发表
老大,我zpool create建了 disk1 disk2 disk3


怎么删除他们啊?
我rm -r ;mount tank.
还能用zfs 和zpool看到。


这个兄弟的操作真有够彪悍 哈
作者: 自由骆驼    时间: 2008-08-12 22:16
请教个问题?
4个80G的硬盘做SPOOL池,共320G,如果其中有一个坏了,数据怎么办?会不会损坏???????????
作者: xxjnw    时间: 2008-08-12 22:25
学习中
作者: KirovAirShip    时间: 2008-08-13 00:25
标题: 回复 #22 自由骆驼 的帖子
看你是串联的了
貌似最简单的串联卷,有损坏的话问题也不会像传统的那么严重
硬盘控制器坏了就不好办了
建议RAIDZ
作者: niupigege    时间: 2008-08-19 15:20
各位老大,前段时间出差去了,所以没有更新,不好意思,现在已经更新完成了
作者: yiyi_2200    时间: 2008-08-19 19:12
标题: 版主老大,我刚开始了解ZFS,有几个问题想请教下?
1、ZFS文件系统是用在solaris10下的,那solaris10在安装时分区怎么分呀,是不是为了更好的管理硬盘,把硬盘只分给"/"、"swap"区,然后再在"/"分区创建ZFS共享池呀?
2、ZFS怎么管理多硬盘呀,是不是在安装分区时直接分好给"/"分区和"swap"分区?如果我的第二块硬盘坏了,系统有没有影响,我找块硬盘能不能换上让系统恢复正常呢?或者我的硬盘空间不够了,我拿块新硬盘能不能挂接到ZFS系统上呢?
3、ZFS的RAID问题,它能不能把整块盘上的数据(当然包括操作系统)整个RAID到令一块硬盘上;也就是说如果第一块硬盘坏了,我用第二块硬盘启动操作系统和应用系统一切正常呢?
请教了!!!
作者: niupigege    时间: 2008-08-20 09:21
原帖由 yiyi_2200 于 2008-8-19 19:12 发表
1、ZFS文件系统是用在solaris10下的,那solaris10在安装时分区怎么分呀,是不是为了更好的管理硬盘,把硬盘只分给"/"、"swap"区,然后再在"/"分区创建ZFS共享池呀?
2、ZFS怎么管理多硬盘呀,是不是在安装分区 ...


1.对于solaris10,zfs还不是默认的文件系统,默认的文件系统是UFS,但是对与opensolaris2008.05,zfs是默认的文件系统,solaris10的分区可以采用默认的分区方式,就是你提到的那个
2.可以,参考在文章里面的用法
3.这个貌似用ZFS的mirror0暂时还不行哦,不确定有没有其他的方法

[ 本帖最后由 niupigege 于 2008-8-20 09:23 编辑 ]
作者: yiyi_2200    时间: 2008-08-20 12:15
标题: 回版主
1、是不是介绍zfs的应用都是基于opensolaris的;
2、ZFS管理多硬盘的参考文章那儿有?
谢谢!!!
作者: niupigege    时间: 2008-08-20 13:12
原帖由 yiyi_2200 于 2008-8-20 12:15 发表
1、是不是介绍zfs的应用都是基于opensolaris的;
2、ZFS管理多硬盘的参考文章那儿有?
谢谢!!!


不是,在solaris10里面也可以创建zfs, 但不是默认的文件系统格式,ZFS管理多硬盘的资料在附件里面就有,在这篇文章里面也有一点提及
作者: yiyi_2200    时间: 2008-08-20 15:55
标题: 回版主
我大概明白了,solaris10默认的是ufs文件系统,在他的上面可以创建zfs当然也可以实现zfs的各项功能,但由于solaris10卷格式的限制,其应用与opensolaris稍有不同,并且由于默认的是ups文件系统,会受到ufs某些功能的限制。
opensolaris就是基于zfs的文件系统,可以完整的实现zfs的各项功能。
不知道我理解的对不,欢迎点拨!
作者: yiyi_2200    时间: 2008-08-20 16:06
另外我想问个RAID1的问题,我已经查过一些文档,知道了RAID1大概怎么配置,但有个问题不太明白,请教了;
条件:一台SUN工作站两块同型号硬盘
RAID1的命令配置是把第一块硬盘的东西完全clone到了第二块硬盘上了,但是由于应用系统运行着会不停地存储数据,这些数据应该是都存到第一块硬盘上了,怎么同步到第二块硬盘。
谢谢!!
RAID1配置如下:(我贴的是别人的帖子,哈哈)
一、Disk分布情况:
0:c0t0d0
1:c0t1d0
系统盘(c0t0d0)分区及镜像盘(c0t1d0)情况:
c0t0d0s0(d10) d0 c0t1d0s0(d20) / 9534M
c0t0d0s1(d11) d1 c0t1d0s1(d21) swap 2049M
c0t0d0s2 c0t1d0s2 overlap 整个盘
c0t0d0s3(d13) d3 c0t1d0s3(d23) /usr 3584M
c0t0d0s6(d16) d6 c0t1d0s6(d26) /metadb 50M
c0t0d0s7(d17) d7 c0t1d0s7(d27) /export/home 2048M
二、安装DiskSuite套件:
系统安装完成后,使用Solarsi8 software 2 of 2安装DiskSuite_4.2.1软件,安装路径:/cdrom/cdrom0/Solaris_8/EA/installer & 选择默认安装就可以。
三、镜像(root用户下进行):
1、调整第二块硬盘(c0t1d0)的文件分区表调整为和引导盘一致
#prtvtoc /dev/rdsk/c0t0d0s2|fmthard –s – /dev/rdsk/c0t1d0s2
fmthard:New volume table of contents now in place
2、准备DiskSuite使用的metadb空间
#umount /metadb **50MB小空间的用处,类似于交换空间
#rm –r /metadb
#vi /etc/vfstab
将下面这行注释掉或删除,如下:
#/dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /metadb ufs 1 yes –
3、制作Mirror
①先生成replicas,供DiskSuite内部用
#metadb –a –f –c 3 c0t0d0s6 c0t1d0s6  
#metadb
②Creating a mirror from /
#metainit -f d10 1 1 c0t0d0s0
#metainit -f d20 1 1 c0t1d0s0
#metainit d0 -m d10
#metaroot d0
③Creating a mirror from swap
#metainit -f d11 1 1 c0t0d0s1
#metainit -f d21 1 1 c0t1d0s1
#metainit d1 -m d11
④Creating a mirror from /var
#metainit -f d13 1 1 c0t0d0s3
#metainit -f d23 1 1 c0t1d0s3
#metainit d3 -m d13
⑤Creating a mirror from /export/home
#metainit -f d17 1 1 c0t0d0s7
#metainit -f d27 1 1 c0t1d0s7
#metainit d7 -m d17
⑥编辑 /etc/vfstab 文件
/dev/dsk/c0t0d0s1 - - swap - no -
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no -
/dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /var ufs 1 no -
/dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /export/home ufs 2 yes -
swap - /tmp tmpfs - yes -
更改为:
/dev/md/dsk/d1 - - swap - no -
/dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no -
/dev/md/dsk/d3 /dev/md/rdsk/d3 /var ufs 1 no -
/dev/md/dsk/d7 /dev/md/rdsk/d7 /export/home ufs 2 yes -
swap - /tmp tmpfs - yes -
⑦文件系统激活
#lockfs –fa
#reboot
⑧文件系统关联
#metattach d0 d20
#metattach d1 d21
#metattach d3 d23
#metattach d7 d27
⑨查看同步状态
#metastat d0
#metastat d1
#metastat d3
#metastat d7
也可以通过DiskSuite的图形化工具查看:
#metatool
100%后,每个文件系统Status:OK,就算镜像完成。
注意:⑧步骤中的每步千万不可拆分到前面几步中分别执行,那样,在执行完一个文件系统后,后续的文件系统就不能metainit,系统提示资源被占用。
四、镜像盘的boot引导:
①启动信息
#installboot /usr/platform/`uname –i`/lib/fs/ufs/bootblk /dev/rdsk/c0t1d0s0
②修改EEPROM
推荐进入OK模式修改
#ls –l /dev/dsk/c0t0d0s0 **获得启动参数
lrwxrwxrwx 1 root root 41 Jun 14 11:08 /dev/dsk/c0t0d0s0 -> ../../devices/pci@1f,4000/scsi@3/sd@0,0:a
#init 0
ok devalias (察看启动设备)
ok nvalias rootdisk /pci@1f,4000/scsi@3/disk@0,0
ok nvalias mirrdisk /pci@1f,4000/scsi@3/disk@1,0
ok setenv boot-device rootdisk mirrdisk disk:a
③测试
ok boot rootdisk **系统正常启动,找到启动文件
ok boot mirrdisk **系统正常启动,找到启动文件
作者: laosun    时间: 2008-08-20 16:15
看了以后不知该说什么好, DEC的VMS操作系统20年前就有这个功能,并且盘与盘之间还可以做shadow.
其UNIXTru64操作系统的advfs file system 早在10年前就有这个存储池的功能.
作者: niupigege    时间: 2008-08-20 17:23
原帖由 yiyi_2200 于 2008-8-20 15:55 发表
我大概明白了,solaris10默认的是ufs文件系统,在他的上面可以创建zfs当然也可以实现zfs的各项功能,但由于solaris10卷格式的限制,其应用与opensolaris稍有不同,并且由于默认的是ups文件系统,会受到ufs某些功 ...

是这样的
作者: niupigege    时间: 2008-08-20 17:24
标题: 回复 #31 yiyi_2200 的帖子
不好意思阿,disksuit我没有用过
作者: niupigege    时间: 2008-08-20 17:26
原帖由 laosun 于 2008-8-20 16:15 发表
看了以后不知该说什么好, DEC的VMS操作系统20年前就有这个功能,并且盘与盘之间还可以做shadow.
其UNIXTru64操作系统的advfs file system 早在10年前就有这个存储池的功能.


VMS系统我没有用过,不知道是怎么样的情况,tru64,我只能说存储池只是zfs的一部分
作者: yuhuohu    时间: 2008-08-20 21:13
标题: 回复 #31 yiyi_2200 的帖子
如果准备组成RAID 1的盘没数据,用SVM或disksuit做完RAID 1后,

在SVM做出来的RAID 1盘上创建文件系统(如果有数据就不能做这个操作了。具体配置步骤和命令就不在这里说了),并挂接到指定目录

然后应用往这个文件系统/目录中写东西,这时候不能直接往原来的盘/文件系统上写了!不然肯定不会同步的,而且会出大问题

于是SVM会自动把写操作同时分配给构成RAID 1的两块盘,一个写请求总共写两次,是同时往两个硬盘写同样的数据

于是乎

同步了。。

yiyi可多了解些关于RAID的基础知识

这个网站真不错:
http://www.raid.com/

[ 本帖最后由 yuhuohu 于 2008-8-20 21:16 编辑 ]
作者: laosun    时间: 2008-08-21 10:10
原帖由 niupigege 于 2008-8-20 17:26 发表


VMS系统我没有用过,不知道是怎么样的情况,tru64,我只能说存储池只是zfs的一部分



呵呵,Tru64的advfs file system,是分两层,下层是存数据的存储池,上层是文件的目录层。也是可以动态扩充和在一定条件下缩减文件系统的大小的。

另外我想问一下ZFS file system对一个文件写是在一个硬盘上写, 还是可以同时在所加的多个盘上写?
作者: yiyi_2200    时间: 2008-08-21 19:06
我去看看 多谢YUHUOHU了!!
作者: niupigege    时间: 2008-08-21 21:17
原帖由 laosun 于 2008-8-21 10:10 发表



呵呵,Tru64的advfs file system,是分两层,下层是存数据的存储池,上层是文件的目录层。也是可以动态扩充和在一定条件下缩减文件系统的大小的。

另外我想问一下ZFS file system对一个文件写是在 ...


这个就看你的配置情况,如果配置了raid0,raid1就是几个硬盘一起写,如果配置了raidz,也是几个硬盘一起写,raidz和raid5类似,不过raid5只能恢复单点错误,而raidz能恢复双点错误,如果什么raid都没有配,就看该文件自己的分配情况,如果这个文件只分配在一个硬盘里,则只有该硬盘被读写,如果这个文件自身是跨硬盘存放的,那就是多盘操作了
作者: laosun    时间: 2008-08-22 09:18
原帖由 niupigege 于 2008-8-21 21:17 发表


这个就看你的配置情况,如果配置了raid0,raid1就是几个硬盘一起写,如果配置了raidz,也是几个硬盘一起写,raidz和raid5类似,不过raid5只能恢复单点错误,而raidz能恢复双点错误,如果什么raid都没有配,就 ...


楼上理解可能有误,我只对ZFS file system而说,而不是对构建其下层的逻辑卷管理而说。即底层只是多个盘做成一个ZFS file system,
没有用逻辑卷。
作者: niupigege    时间: 2008-08-22 13:44
原帖由 laosun 于 2008-8-22 09:18 发表


楼上理解可能有误,我只对ZFS file system而说,而不是对构建其下层的逻辑卷管理而说。即底层只是多个盘做成一个ZFS file system,
没有用逻辑卷。


ZFS不用我们去使用逻辑卷管理软件,就是你说的只是多个盘做成一个ZFS file system.laosun,不知道我理解到你想说的意思没?
作者: 体元主人    时间: 2008-08-22 15:29
原帖由 yuhuohu 于 2008-8-11 22:44 发表
牛皮这个懒蛋啊。又跳票了。。。

更新,要求更新,最少15000字的说~



很眼熟啊 起点的书评里面很常见!
作者: yuhuohu    时间: 2008-08-22 18:19
原帖由 体元主人 于 2008-8-22 15:29 发表



很眼熟啊 起点的书评里面很常见!


恩恩你的ID也很像起点的YY书中的大牛啊
作者: 小把戏    时间: 2008-08-24 11:49
  期待下期
作者: hexilanlan    时间: 2008-08-25 14:43
继续关注
作者: twotwotwo    时间: 2008-09-02 09:51
:wink:
作者: wendaozhe    时间: 2008-09-10 19:16
期待下一篇
作者: 孔方兄    时间: 2008-09-10 20:14
用8块750G的SATA配合LSI的SAS卡,做了一个ZFS的pool;机器配置不错,双xeon,16g mem的;zfs速度很快!特别是顺序大文件写,mkfile;其他的还没有详细测试;
作者: nimysun    时间: 2008-09-10 22:53
为方便阅读,我给你修改掉了表情符号
作者: sunshiene    时间: 2008-10-07 14:53
迟到的人来顶一下,我们的业务要上ZFS了
作者: nicsky    时间: 2008-10-07 16:44
非常感谢呀!!!
作者: tanjiesymbol    时间: 2008-10-21 14:43
期待DTRACE部分
作者: 西贝土方木点    时间: 2008-12-21 18:26
不错



作者: free4us    时间: 2008-12-22 12:46
niupigege,能不能发一份文档,谢谢



ccqfsh@gmail.com
作者: twinklezcf    时间: 2008-12-25 13:43
写得真好...我要是有这文采就好喽....
作者: jerrymy    时间: 2009-06-26 15:56
so good!
作者: unknownmore    时间: 2011-03-12 18:36
看完了。。。受教育了。。。。呵呵 。。。
虽然帖子很早了。。。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2