下面的例子我们将一起使用4个8GB磁盘驱动器/dev/sde. /dev/sdf. /dev/sdg. /dev/sdh, 请跟随我的步伐,战斗吧。
一个简单的存储池
我们一起来用上面的四个磁盘驱动器创建我们的第一个zfs存储池,名字叫做“tank“
命令如下
# zpool create tank sde sdf sdg sdh
这样,我就已经使用了四个虚拟设备(VDEVS),注意,我这里没有使用全路径,尽管我可以这么做,由于VDEVS总是动态的条纹,所以RAID-0(无冗余)在四个驱动器间总是有效的。创建完毕,我们还得检查一下他的状态。
# zpool status tank
pool: tank
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
sdg ONLINE 0 0 0
sdh ONLINE 0 0 0
errors: No known data errors
可以看出,成功创建,并且正确运行。 成功了,那么就将它删除吧,随我来。
# zpool destroy tank
一个简单的镜像存储池
我还将使用以上的是个驱动器,不过,这一次,我不是将他们当作VDEVS使用,而是mirror,如下命令。
# zpool create tank mirror sde sdf sdg sdh
# zpool status tank
pool: tank
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
sdg ONLINE 0 0 0
sdh ONLINE 0 0 0
errors: No known data errors
注意到mirror-0现在也是一个VDEV了,所有的物理驱动器都是通过他来管理,这和之前的软RAID,将/dev/md0当作4个驱动器来使用很类似。成功了,那么,删了他再来一个。。
# zpool destroy tank
嵌套的VDEVS
vdevs是可以嵌套的,最好的例子就是RAID-1 + 0,他们组合而成的RAID-10。为了演示嵌套vdevs,我将在命令行展示出来
# zpool create tank mirror sde sdf mirror sdg sdh
# zpool status
pool: tank
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
sdg ONLINE 0 0 0
sdh ONLINE 0 0 0
errors: No known data errors
第一个VDEV是mirror-0,他用来管理sde和sdf,可以被称作sde和sdf的镜像,第二个VDEV是mirror-1,他用来管理sdg和sdh,称作sdg个sdh的镜像。由于VDEVS一直都是动态条带化的,所以mirror-1和mirror-0也是,可以将他们用来创建一个RAID-10的嵌套。成功之后别忘了删除。
# zpool destroy tank