zfs文件系统成立过程,在Solaris平新竹ASM所需磁盘的Format进度

前不久在大增ASM磁盘进度中相见如下错误:

solaris zfs文件系统制造进度

SQL> alter diskgroup datadg add disk ‘/dev/rac/DBdg01’ rebalance
power 0;
 alter diskgroup datadg add disk ‘/dev/rac/DBdg01’ rebalance power 0
 *
 ERROR at line 1:
 ORA-15032: not all alterations performed
 ORA-15031: disk specification ‘/dev/rac/DBdg01’ matches no disks
 ORA-15025: could not open disk ‘/dev/rac/DBdg01’
 ORA-15056: additional error message
 SVR4 Error: 13: Permission denied
 Additional information: 42
 Additional information: –1897261352

 

 

login: root

通过二日排查,最后的管理办法归纳为在OS境况经过Format命令格式化分区时如下的0号分区未有留空间,6号区从0号Cylinders
起始导致的。

Password: 

Part Tag Flag Cylinders Size Blocks
 0 root wm 0 – 4 117.66MB (5/0/0) 240975

Last login: Wed May 29 15:25:34 from 172.16.0.100

现实管理进度如下:

Oracle Corporation      SunOS 5.10      Generic Patch   January 2005

 

bash-3.2# zpool list

bash-3.00# format
 Searching for disks…done

NAME   SIZE  ALLOC  FREE  CAP  HEALTH  ALTROOT

c3t6000B5D0006A0000006A10C100080000d0: configured with capacity of
1023.95GB
 c3t6000B5D0006A0000006A10C100090000d0: configured with capacity of
279.87GB

rpool  278G  40.8G  237G  14%  ONLINE  –

 AVAILABLE DISK SELECTIONS:
 …..
        6. c3t6000B5D0006A0000006A10C100040000d0
<FUJITSU-ETERNUS_DX400-0000 cyl 61273 alt 2 hd 128 sec 256>
          /scsi_vhci/ssd@g6000b5d0006a0000006a10c100040000
        7. c3t6000B5D0006A0000006A10C100050000d0
<FUJITSU-ETERNUS_DX400-0000 cyl 44556 alt 2 hd 255 sec 189>
          /scsi_vhci/ssd@g6000b5d0006a0000006a10c100050000

bash-3.2# df -h

…..

Filesystem             size   used  avail capacity  Mounted on

 Specify disk (enter its number): 7 
 selecting c3t6000B5D0006A0000006A10C100050000d0
 [disk formatted]

rpool/ROOT/s10s_u11wos_24a

 FORMAT MENU:
        disk      – select a disk
        type      – select (define) a disk type
        partition  – select (define) a partition table
        current    – describe the current disk
        format    – format and analyze the disk
        repair    – repair a defective sector
        label      – write label to the disk
        analyze    – surface analysis
        defect    – defect list management
        backup    – search for backup labels
        verify    – read and display labels
        save      – save new disk/partition definitions
        inquiry    – show vendor, product and revision
        volname    – set 8-character volume name
        !<cmd>    – execute <cmd>, then return
        quit
 format> p

                       274G   4.8G   232G     3%    /

 PARTITION MENU:
        0      – change `0′ partition
        1      – change `1′ partition
        2      – change `2′ partition
        3      – change `3′ partition
        4      – change `4′ partition
        5      – change `5′ partition
        6      – change `6′ partition
        7      – change `7′ partition
        select – select a predefined table
        modify – modify a predefined partition table
        name  – name the current table
        print  – display the current table
        label  – write partition map and label to the disk
        !<cmd> – execute <cmd>, then return
        quit
 partition> m
 Select partitioning base:
        0. Current partition table (original)
        1. All Free Hog
 Choose base (enter number) [0]? 0

/devices                 0K     0K     0K     0%    /devices

Part      Tag    Flag    Cylinders        Size            Blocks
  0      root    wm      0                0        (0/0/0)             
0
  1      swap    wu      0                0        (0/0/0)             
0
  2    backup    wu      0 – 44555    1023.95GB    (44556/0/0)
2147376420
  3 unassigned    wm      0                0        (0/0/0)             
0
  4 unassigned    wm      0                0        (0/0/0)             
0
  5 unassigned    wm      0                0        (0/0/0)             
0
  6        usr    wm      0 – 44555    1023.95GB    (44556/0/0)
2147376420
  7 unassigned    wm      0                0        (0/0/0)             
0

ctfs                     0K     0K     0K     0%    /system/contract

Do you wish to continue creating a new partition
 table based on above table[yes]?       
 Free Hog partition[6]?
Enter size of partition ‘0’ [0b, 0c, 0.00mb, 0.00gb]: 100m
 Enter size of partition ‘1’ [0b, 0c, 0.00mb, 0.00gb]:
 Enter size of partition ‘3’ [0b, 0c, 0.00mb, 0.00gb]:
 Enter size of partition ‘4’ [0b, 0c, 0.00mb, 0.00gb]:
 Enter size of partition ‘5’ [0b, 0c, 0.00mb, 0.00gb]:
 Enter size of partition ‘7’ [0b, 0c, 0.00mb, 0.00gb]:

proc                     0K     0K     0K     0%    /proc

Part      Tag    Flag    Cylinders        Size            Blocks
  0      root    wm      0 –    4      117.66MB    (5/0/0)       
240975
  1      swap    wu      0                0        (0/0/0)             
0
  2    backup    wu      0 – 44555    1023.95GB    (44556/0/0)
2147376420
  3 unassigned    wm      0                0        (0/0/0)             
0
  4 unassigned    wm      0                0        (0/0/0)             
0
  5 unassigned    wm      0                0        (0/0/0)             
0
  6        usr    wm      5 – 44555    1023.83GB    (44551/0/0)
2147135445
  7 unassigned    wm      0                0        (0/0/0)             
0

mnttab                   0K     0K     0K     0%    /etc/mnttab

Okay to make this the current partition table[yes]? yes
 Enter table name (remember quotes): DBdg01

swap                    84G   512K    84G     1%    /etc/svc/volatile

Ready to label disk, continue?
 Ready to label disk, continue? lable
 `lable’ is not expected.
 Ready to label disk, continue? y

objfs                    0K     0K     0K     0%    /system/object

partition> q

sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab

 FORMAT MENU:
        disk      – select a disk
        type      – select (define) a disk type
        partition  – select (define) a partition table
        current    – describe the current disk
        format    – format and analyze the disk
        repair    – repair a defective sector
        label      – write label to the disk
        analyze    – surface analysis
        defect    – defect list management
        backup    – search for backup labels
        verify    – read and display labels
        save      – save new disk/partition definitions
        inquiry    – show vendor, product and revision
        volname    – set 8-character volume name
        !<cmd>    – execute <cmd>, then return
        quit
 format> s
 Saving new disk and partition definitions
 Enter file name[“./format.dat”]:
 format> quit

/platform/sun4v/lib/libc_psr/libc_psr_hwcap3.so.1

 

                       237G   4.8G   232G     3%  
 /platform/sun4v/lib/libc_psr.so.1

以上进程完毕后,下一步工作就是在ASM蒙受下增添磁盘,操作步骤如下:
bash-3.00# su  –
Oracle
 Oracle Corporation      SunOS 5.10      Generic Patch  January 2005
 You have new mail.
 [dbserv1]@dbserv-db1[/export/home/oracle]$export
ORACLE_SID=+ASM1
 [+ASM1]@dbserv-db1[/export/home/oracle]$asmcmd
 ASMCMD> lsdg
 State    Type    Rebal  Unbal  Sector  Block      AU  Total_MB 
Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Name
 MOUNTED  EXTERN  N      N        512  4096  1048576  1048217  812839   
            0          812839              0  BACKUP/
 MOUNTED  EXTERN  N      N        512  4096  1048576    999760    40673 
              0          40673              0  DATADG/
 ASMCMD> exit
 [+ASM1]@dbserv-db1[/export/home/oracle]$sqlplus / as sysdba

/platform/sun4v/lib/sparcv9/libc_psr/libc_psr_hwcap3.so.1

SQL*Plus: Release 10.2.0.5.0 – Production on Mon Jun 30 18:42:26 2014

                       237G   4.8G   232G     3%  
 /platform/sun4v/lib/sparcv9/libc_psr.so.1

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

fd                       0K     0K     0K     0%    /dev/fd

 Connected to:
 Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 – 64bit
Production
 With the Partitioning, Real Application Clusters, OLAP, Data Mining
 and Real Application Testing options

swap                    84G    32K    84G     1%    /tmp

SQL> alter diskgroup DATADG add disk ‘/dev/rac/DBdg01’ rebalance
power 0;

swap                    84G    56K    84G     1%    /var/run

Diskgroup altered.

rpool/export           274G    32K   232G     1%    /export

SQL> exit
 Disconnected from Oracle Database 10g Enterprise Edition Release
10.2.0.5.0 – 64bit Production
 With the Partitioning, Real Application Clusters, OLAP, Data Mining
 and Real Application Testing options
 [+ASM1]@dbserv-db1[/export/home/oracle]$asmcmd
 ASMCMD> lsdg
 State    Type    Rebal  Unbal  Sector  Block      AU  Total_MB 
Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Name
 MOUNTED  EXTERN  N      N        512  4096  1048576  1048217  812839   
            0          812839              0  BACKUP/
 MOUNTED  EXTERN  N      N        512  4096  1048576  2048165  1089067 
              0        1089067              0  DATADG/
 ASMCMD> exit
 [+ASM1]@dbserv-db1[/export/home/oracle]$eixt
 -bash: eixt: command not found
 [+ASM1]@dbserv-db1[/export/home/oracle]$exit
 logout
 bash-3.00# id
 uid=0(root) gid=0(root)

rpool/export/home      274G    31K   232G     1%    /export/home

Oracle ASM 如何增添新磁盘到磁盘 
http://www.linuxidc.com/Linux/2015-01/111734.htm 

rpool                  274G   106K   232G     1%    /rpool

Oracle 10g 手工业创造ASM数据库
http://www.linuxidc.com/Linux/2013-01/78229.htm 

bash-3.2# cd /usr

Ubuntu
12.04(amd64)安装完Oracle 11gLacrosse2后各个主题素材一蹴即至格局
http://www.linuxidc.com/Linux/2013-06/86155.htm 

bash-3.2# ls

怎么修改Oracle 10g ASM的sys密码
http://www.linuxidc.com/Linux/2012-11/75163.htm 

4lib        X11R6       bin         games       jdk         man        
openwin     preserve    sfw         sunvts      vmsys

更加多Oracle相关音信见Oracle 专项论题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

5bin        adm         ccs         gnome       kernel      net        
perl5       proc        share       tmp         xpg4

本文永世更新链接地址:http://www.linuxidc.com/Linux/2015-04/116420.htm

SUNWale     apache      demo        include     kvm         news      
 pgadmin3    pub         snadm       ucb         xpg6

图片 1

X           apache2     dict        j2se        lib         oasys      
platform    sadm        spool       ucbinclude

X11         aset        dt          java        mail        old        
postgres    sbin        src         ucblib

bash-3.2# mkdir local

bash-3.2# cd local

bash-3.2# mkdir wolf

bash-3.2# zpool list

NAME   SIZE  ALLOC  FREE  CAP  HEALTH  ALTROOT

rpool  278G  40.8G  237G  14%  ONLINE  –

bash-3.2# zpool status

  pool: rpool

 state: ONLINE

 scan: none requested

config:

        NAME                       STATE     READ WRITE CKSUM

        rpool                      ONLINE       0     0     0

          c0t5000CCA03C7094CCd0s0  ONLINE       0     0     0

 

bash-3.2# format

Searching for disks…done

 

AVAILABLE DISK SELECTIONS:

       0. c0t5000CCA03C70A308d0 <HITACHI-H106030SDSUN300G-A2B0 cyl
46873 alt 2 hd 20 sec 625>  solaris

         
/scsi_vhci/[email protected]

       1. c0t5000CCA03C7094CCd0 <HITACHI-H106030SDSUN300G-A2B0 cyl
46873 alt 2 hd 20 sec 625>  solaris

         
/scsi_vhci/[email protected]

Specify disk (enter its number): 1   

selecting c0t5000CCA03C7094CCd0: solaris

[disk formatted]

/dev/dsk/c0t5000CCA03C7094CCd0s0 is part of active ZFS pool rpool.
Please see zpool(1M).

/dev/dsk/c0t5000CCA03C7094CCd0s2 is part of active ZFS pool rpool.
Please see zpool(1M).

 

FORMAT MENU:

        disk       – select a disk

        type       – select (define) a disk type

        partition  – select (define) a partition table

        current    – describe the current disk

        format     – format and analyze the disk

        repair     – repair a defective sector

        label      – write label to the disk

        analyze    – surface analysis

        defect     – defect list management

        backup     – search for backup labels

        verify     – read and display labels

        save       – save new disk/partition definitions

        inquiry    – show vendor, product and revision

        volname    – set 8-character volume name

        !<cmd>     – execute <cmd>, then return

        quit

format> p

 

PARTITION MENU:

        0      – change `0′ partition

        1      – change `1′ partition

        2      – change `2′ partition

        3      – change `3′ partition

        4      – change `4′ partition

        5      – change `5′ partition

        6      – change `6′ partition

        7      – change `7′ partition

        select – select a predefined table

        modify – modify a predefined partition table

        name   – name the current table

        print  – display the current table

        label  – write partition map and label to the disk

        !<cmd> – execute <cmd>, then return

        quit

partition> p

Volume:  solaris

Current partition table (original):

Total disk cylinders available: 46873 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks

  0       root    wm       0 – 46872      279.38GB    (46873/0/0)
585912500

  1 unassigned    wm       0                0         (0/0/0)          
  0

  2     backup    wm       0 – 46872      279.38GB    (46873/0/0)
585912500

  3 unassigned    wm       0                0         (0/0/0)          
  0

  4 unassigned    wm       0                0         (0/0/0)          
  0

  5 unassigned    wm       0                0         (0/0/0)          
  0

  6 unassigned    wm       0                0         (0/0/0)          
  0

  7 unassigned    wm       0                0         (0/0/0)          
  0

partition> ^C

bash-3.2#

bash-3.2#

bash-3.2# zpool status

  pool: rpool

 state: ONLINE

 scan: none requested

config:

        NAME                       STATE     READ WRITE CKSUM

        rpool                      ONLINE       0     0     0

          c0t5000CCA03C7094CCd0s0  ONLINE       0     0     0

errors: No known data errors

 

bash-3.2# zpool create -f wolfpool /dev/dsk/c0t5000CCA03C70A308d0s0

bash-3.2# zpool list

NAME      SIZE  ALLOC  FREE  CAP  HEALTH  ALTROOT

wolfpool  278G    77K  278G   0%  ONLINE  –

rpool     278G  40.8G  237G  14%  ONLINE  –

bash-3.2# zfs list

NAME                         USED  AVAIL  REFER  MOUNTPOINT

wolfpool                      70K   274G    31K  /wolfpool

rpool                       41.8G   232G   106K  /rpool

rpool/ROOT                  4.78G   232G    31K  legacy

rpool/ROOT/s10s_u11wos_24a  4.78G   232G  4.78G  /

rpool/dump                  4.01G   232G  4.00G  –

rpool/export                  63K   232G    32K  /export

rpool/export/home             31K   232G    31K  /export/home

rpool/swap                  33.0G   233G  32.0G  –

bash-3.2# df -h

Filesystem             size   used  avail capacity  Mounted on

rpool/ROOT/s10s_u11wos_24a

                       274G   4.8G   232G     3%    /

/devices                 0K     0K     0K     0%    /devices

ctfs                     0K     0K     0K     0%    /system/contract

proc                     0K     0K     0K     0%    /proc

mnttab                   0K     0K     0K     0%    /etc/mnttab

swap                    84G   520K    84G     1%    /etc/svc/volatile

objfs                    0K     0K     0K     0%    /system/object

sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab

/platform/sun4v/lib/libc_psr/libc_psr_hwcap3.so.1

                       237G   4.8G   232G     3%  
 /platform/sun4v/lib/libc_psr.so.1

/platform/sun4v/lib/sparcv9/libc_psr/libc_psr_hwcap3.so.1

                       237G   4.8G   232G     3%  
 /platform/sun4v/lib/sparcv9/libc_psr.so.1

fd                       0K     0K     0K     0%    /dev/fd

swap                    84G    32K    84G     1%    /tmp

swap                    84G    56K    84G     1%    /var/run

rpool/export           274G    32K   232G     1%    /export

rpool/export/home      274G    31K   232G     1%    /export/home

rpool                  274G   106K   232G     1%    /rpool

wolfpool               274G    31K   274G     1%    /wolfpool

 

bash-3.2# zfs help

The following commands are supported:

allow       clone       create      destroy     diff        get         

groupspace  help        hold        holds       inherit     list        

mount       promote     receive     release     rename      rollback    

send        set         share       snapshot    unallow     unmount     

unshare     upgrade     userspace   

For more info, run: zfs help <command>

bash-3.2# zfs set

missing property=value argument

For more info, run: zfs help set

bash-3.2# zfs help set

usage:

        set [-r] <property=value>
<filesystem|volume|snapshot> …

bash-3.2# zfs set mountpoint=/usr/local/wolf wolfpool

bash-3.2# df -h

Filesystem             size   used  avail capacity  Mounted on

rpool/ROOT/s10s_u11wos_24a

                       274G   4.8G   232G     3%    /

/devices                 0K     0K     0K     0%    /devices

ctfs                     0K     0K     0K     0%    /system/contract

proc                     0K     0K     0K     0%    /proc

mnttab                   0K     0K     0K     0%    /etc/mnttab

swap                    84G   520K    84G     1%    /etc/svc/volatile

objfs                    0K     0K     0K     0%    /system/object

sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab

/platform/sun4v/lib/libc_psr/libc_psr_hwcap3.so.1

                       237G   4.8G   232G     3%  
 /platform/sun4v/lib/libc_psr.so.1

/platform/sun4v/lib/sparcv9/libc_psr/libc_psr_hwcap3.so.1

                       237G   4.8G   232G     3%  
 /platform/sun4v/lib/sparcv9/libc_psr.so.1

fd                       0K     0K     0K     0%    /dev/fd

swap                    84G    32K    84G     1%    /tmp

swap                    84G    56K    84G     1%    /var/run

rpool/export           274G    32K   232G     1%    /export

rpool/export/home      274G    31K   232G     1%    /export/home

rpool                  274G   106K   232G     1%    /rpool

wolfpool               274G    31K   274G     1%    /usr/local/wolf

 


网上转:

ZFS的特点:

ZFS是SUN推出的社会风气上率先个1贰13个人的文件系统,那意味着它能积累1800亿亿(18.4
× 10^1
8)倍于当前陆拾位文件系统的多寡。ZFS的宏图那样超前直至那么些极限就这几天现实际或者长久无法相见。听他们说:“要填满贰个129位的文件系统,将耗尽地球上全数存款和储蓄设备。除非您具有煮沸整个海域的能量,不然你不容许将其填满。(Populating
128-bit file systems would exceed the quantum limits of earth-based
storage. You couldn’t fill a 128-bit storage pool without boiling the
oceans.)”[1]

以下是ZFS的有个别驳斥极限:

* 2^48 — 大肆文件系统的快照数量 (2 × 10^14)

* 2^48 — 任何单独文件系统的公文数 (2 × 10^14)

* 16 exabytes (2^64 byte) — 文件系统最大尺寸

* 16 exabytes (2^64 byte) — 最大单个文件尺寸

* 16 exabytes (2^64 byte) — 最大属性大小

* 3 × 10^23 petabytes (2^78 byte) — 最大zpool大小

* 2^56 — 单个文件的属性数据(受ZFS文件数量的牢笼,实际为2^4 8)

* 2^56 — 单个目录的公文数(受ZFS文件数量的束缚,实际为2^4 8)

* 2^64 — 单一zpool的设备数

* 2^64 — 系统的zpools数量

* 2^64 — 单一zpool的文件系统数量

用作对这几个数字的神志认知,假使每分钟创立1,000个新文件,达到ZFS文件数极限需求大概9,000年。

在辩护填满ZFS与煮沸海洋的关联时,Bonwick写到:

就算我们都指望穆尔定律永恒持续,然而量子力学给定了别样物理设备上测算速率(computation
rate)与音讯量的申辩极限。例如来说,三个品质为1市斤,体积为1升的实体,每秒至多在10^叁12个人音信上实行10^54遍运算。[参考Seth Lloyd, “Ultimate physical limits to
computation(总括的终极物理限制).” Nature 406, 1047-1054
(2000)]。四个全然的1贰13个人存款和储蓄池将富含2^128个块 = 2^137 字节 = 2^144位;应此,保存那么些多少位至少供给(2^140 位) / (10^31 位/千克) =
1360亿十两的物质。

=================================================

接纳ZFS的十条理由

  1. 再也无需fsck, scandisk

任由您是在用Linux,UNIX还是Windows,相信大家都有过类似的体会:当系统竟然断电只怕违法关机,系统重起后意识文件系统有
inconsistent的难题,那时候就需求fsck大概scandisk
来修复,这段时光是相当耗费时间而且最后不自然能够修复成功。更不佳的是,假若那是一台服务器必要做fsck的时候,只可以offline(下线),而且现成应用往往都以大硬盘,相应fsck修复时间也十分短,那对数不尽运用该服务器的用户来讲差不离无法忍受的。而利用ZFS后我们能够彻底打消fsck这种工具,因为
ZFS是一个基于COW(Copy on
Write)机制的文件系统。COW是不会对硬盘上存活的文件举行重写,保障全部硬盘上的文书都以有效的。所以不会有这种inconsistent的定义,自然就没有要求这种工具了。

  1. 管理简便

ZFS作为一个全新的文件系统,周密放任守旧File System + Volume Manager +
Storage的框架结构,全数的存款和储蓄设备是通过ZFS
Pool实行管理,只要把各样存款和储蓄设备到场同叁个ZFS
Pool,我们就能够轻巧的在那一个ZFS
Pool管理配置文件系统。我们再也不用牢记种种正规概念,各个指令newfs,
metinit及各个Volume
Manager的用法。在ZFS中大家只须要五个指令,zpool(针对ZFS
Pool管理)和zfs(针对ZFS文件系统的管制),就足以轻易管理1贰十八个人的文件系统。比如,大家平时会境遇系统数据增进过快,现存存储体量缺乏,须求丰盛硬盘,假使依据守旧的Volume
Manager管理格局,那我们须求事先要思虑多数存世因素,还要预先根据使用总计出需求布置的各样参数。在ZFS情状下,大家的系统助理馆员能够彻底解放,再也无需这种人造的复杂性思虑和测算,我们得以把那个付出ZFS,因为ZFS
Pool会自动调整,动态适应需要。大家只需一个简单易行的下令为那个ZFS
Pool插足新的硬盘就足以了:

zpool add zfs_pool mirror c4t0d0 c5t0d0

依据那几个动态调整的ZFS
Pool之上的全部的文件系统就足以登时使用到那么些新的硬盘,并且会自行的选料最优化的参数。

同时ZFS同期也提供图形化的保管分界面,上面是二个ZFS图形化管理的三个截屏:

  1. 从未任何体量限制

ZFS(Zettabyte File
System)文件系统就像其名字所预示,能够提供真正的海量存储,在具体中大约不恐怕碰着容积难题。在存活的63人kernel(内核)下,它能够包容达到16
Exabytes(264)大小的单个文件,能够使用262个存款和储蓄设备,能够创制2陆11个文件系统。

  1. 一起保险数据的不利和总体

鉴于ZFS全数的数码操作都以依靠Transaction(事务),一组对应的操作会被ZFS分析为一个政工操作,事务的操作就表示着一组操作依然一同战败,要么一同成功。而且如前所说,ZFS对具备的操作是基于COW(Copy
on
Write),从而保险设施上的数量始终都以行得通的,再也不会因为系统崩溃只怕意料之外掉电导致数据文件的inconsistent。

还会有一种神秘胁制数据的只怕是来自于硬件设施的标题,比方磁盘,RAID卡的硬件难题要么驱动bug。现存文件系统平日蒙受这一个主题素材,往往只是简短的把错误数据直接交给上层应用,平时我们把这么些难点称作
Silent Data
Corruption。而在ZFS中,对全体数据不管是用户数量只怕文件系统本人的metadata数据都进展257人的Checksum(校验),当ZFS在提交数据时会进行校验,通透到底杜绝这种Silent
Data Corruption意况。

  1. 提供非凡质量和扩大性

和观念File System + Volume Manager +
Storage架构不一致,ZFS则是间接基于存款和储蓄设备提供具备的效果,因而有温馨独有的翻新特色,品质自然非比经常。

* Dynamic Striping vs. Static Striping

是因为ZFS是依赖COW和二个大局动态的ZFS
Pool,任何一遍写操作,都以对一块新数据块(Block)的叁回写操作。ZFS从ZFS
Pool中动态挑选出贰个最优的设施,并且以三个transaction(事务)线性写入,丰盛有效地使用了现存设施的带宽,大家把这一个天性称为
Dynamic Striping。而相呼应的Static
Striping则是价值观文件系统所选取的措施,Static
Striping须要管理员预先对那组Stripe实行不易地总计人为设置,而且即使参与新的设备则要求重新人为的乘除和设置,更为严重的是一旦人为总计错误,则会一向影响系统的天性。而在采用Dynamic
Striping这种特点之后,我们根本不须求人工参与,ZFS会自动调解,智能的为您提供最棒的设备,最快的操作方法。

* 辅助多样尺寸的数据块(Multiple Block Size)

ZFS协理各类大大小小的数据块定义,从512字节到1M字节。和古板文件系统往往都以定点大小数据块不一样,ZFS则是足以动态的依附分歧大小的文件进行总计,动态的选料最棒的数据块。

因为分裂大小数据块,直接影响到实际应用硬盘体量和读取速度。假设利用相当小的数据块,存款和储蓄文件所形成的零散则较少,读写小文件越来越快一些,可是会促成急需成立更多的
metadata,读写大文件则会更吃力。借使使用极大的数据块,使用的metadata较少,更利于读写大文件,不过会招致越来越多的碎片。ZFS依照实际调查现存文件使用的情形,分析出二个抉择数据块大小的算法,动态的依据实际文件大小分明最棒的数据块。所以ZFS是丰裕智能的,在没有须要系统管理员参预,就能够收获一个自小编调优的结果。当然ZFS也支撑用户对单个文件只怕全体文件系统所运用的多寡块大小的自定义设置。

* 智能预读取(速龙ligent Prefetch)

大部的操作系统都有这种将数据预先读取的职能,而ZFS则是树立在文件系统上平素提供的一种越发智能的多少预读取功效。它不光能够智能地识别出各种读取格局,举行提前读取数据,而且能够对种种读取数据流进行这种预读取智能识别,这一个对多数流媒体提供者来讲是件相当好的作业。

在增加性上,和水保文件系统多是基于二个受限的静态模型不相同,ZFS是利用ZFS
Pool那些动态概念,它的metadata也是动态,并且读写操作都是可交互的,并且具有优先级概念,所以就算在大数据量,多设备的景观下还是能够保证品质的线性拉长。

  1. 本身修复功用

* ZFS Mirror 和 RAID-Z

历史观的硬盘Mirror及RAID 4,RAID 5阵列方式都会遇见前边提到过的主题素材:Silent
Data
Corruption。若是发生了某块硬盘物理难题形成数据失实,现成的Mirror,包含RAID
4,RAID
5阵列会默默地把这么些错误数据提交给上层应用。虽然那个荒唐发生在Metadata中,则会平素导致系统的Panic。而且还应该有一种更为严重的情状是:在
RAID 4和RAID
5阵列中,假如系统正在测算Parity数值,相提并论复写入新数据和新Parity值的时候发生断电,那么全数阵列的有着存款和储蓄的多寡都毫无意义了。

在ZFS中则建议了相对应的ZFS
Mirror和RAID-Z格局,它在承担读取数据的时候会自动和256人校验码进行校验,会积极性意识这种Silent
Data
Corruption,然后经过相应的Mirror硬盘也许通过RAID-Z阵列中任何硬盘得到不错的数额重临给上层应用,并且同有时候自动修复原硬盘的
Data Corruption 。

* Fault Manager

在Solaris 10中,包涵一个ZFS会诊引擎和Solaris的 Fault
Manager(这也是Solaris
10的另一个新特色)交互,能够实时地诊断分析并且告诉ZFS
Pool和存储设备的失实,用户能够经过Fault
Manager及时获得四个不胜友善的新闻。这么些诊断引擎尽管不会动用主动的一颦一笑去修补或许化解难题,然则会在新闻中晋升系统管理员可使用的动作。类似下边三个ZFS报错音信,个中REC-ACTION正是提议采纳的动作:

SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major

EVENT-TIME: Fri Mar 10 11:09:06 MST 2006

PLATFORM: SUNW,Ultra-60, CSN: -, HOSTNAME: neo

SOURCE: zfs-diagnosis, REV: 1.0

EVENT-ID: b55ee13b-cd74-4dff-8aff-ad575c372ef8

DESC: A ZFS device failed. Refer to for
more information.

AUTO-RESPONSE: No automated response will occur.

IMPACT: Fault tolerance of the pool maybe compromised.

REC-ACTION: Run ’zpool status -x’ and replace the bad device.

  1. 安全

在安全上,ZFS支持类似NT风格NFSv4版的ACL(读取调节列表)。而且前边所涉及的2五19位验证码,用户可选拔各个注解办法,包蕴SHA-256验证算法,从而在情理存款和储蓄单元等第上保险数据的安全性。

  1. 超强效率

ZFS作为“最终三个文件系统”,涵盖了骨干的文件系统和Volume管理的效能,同时一并提供多数集团级其余超强功用:Quota(分配的定额),
Reservation(预留), Compression(压缩),
Snapshot(快照),Clone(克隆)。并且速度极度快。有了这么些文件系统,我们再也无需任何Volume
Manager了。

  1. 兼容性

ZFS是贰个截然合营POSIX标准的文件系统,所以处在上层的应用程序是一点一滴不受影响。ZFS也提供一个Emulated
Volume模块,能够把别的四个ZFS文件系统作为普通的块设备选拔。同不时间ZFS也得以应用基于Volume
Manager创设的Volume作为存款和储蓄设备单元。那样在不需求修改应用程序,不改动已有文件系统下,给了豪门最大的自由度去取得ZFS提供的各类特色。

  1. 开源

ZFS是Sun
七彩虹公司当作OpenSolaris的三个开源项目周转并且完全免费使用,点击这里(http:
//www.opensolaris.org/os/community/zfs/source/)
能够直接浏览到ZFS的代码。那就表示着我们不仅仅同一时间能够大快朵颐商业公司的高素质,也足以收获开源方式的助益。

(来源: 老饿鱼的势力范围)

就算近来唯有Solaris援救该文件系统,可是这种开源的格局必定会促进更多基于ZFS的使用。未来一度有国外开辟者正在将ZFS移植到Linux和
Mac OS上来。假若想要体验一下ZFS,由于最近它和Solaris
10绑定在联合,所以必要下载最新版的Solaris 10 6/06

 

zfs文件系统创设进度 login: root Password:
Last login: Wed May 29 15:25:34 from 172.16.0.100 Oracle Corporation
SunOS 5.10 Generic Patch January 二〇〇七 bash-3.2# zpool…

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website