Total Pageviews

100,756

Sunday, 13 April 2014

RAID Techniques in ZFS (RAID-1) !!!


Like in UFS, we can use RAID techniques in ZFS also....Let us create few RAID volumes.

The standard RAID technique RAID-1 (mirroring) and we also have raidz2,3 techniques which includes parity bit.

Need to know :

root@mysrv1 # zpool create mirp1 raidz1 c5d3
invalid vdev specification: raidz1 requires at least 2 devices

root@mysrv1 #
root@mysrv1 # zpool create mirp1 raidz2 c5d3 c5d4
invalid vdev specification: raidz2 requires at least 3 devices

root@mysrv1 #
root@mysrv1 # zpool create mirp1 raidz3 c5d3 c5d4 c5d5
invalid vdev specification: raidz3 requires at least 4 devices

root@mysrv1 #

raidz1 -- even if one disk got failed, data can be retrieved using the other disk and parity.
raidz2 -- even if two disks got failed, data can be retrieved using the other disk and parity.
raidz3 -- even if three disks got failed, data can be retrieved using the other disk and parity.


root@mysrv1 #
root@mysrv1 # zpool list
NAME    SIZE  ALLOC   FREE  CAP  HEALTH  ALTROOT
rpool  9.94G  6.13G  3.81G  61%  ONLINE  -

root@mysrv1 #

To create a mirror pool we need to give mirror keyword.

root@mysrv1 #
root@mysrv1 # zpool create mirp mirror c5d1 c5d2 
root@mysrv1 #
root@mysrv1 # zpool status mirp
  pool: mirp
 state: ONLINE
 scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mirp        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c5d1    ONLINE       0     0     0
            c5d2    ONLINE       0     0     0

errors: No known data errors
root@mysrv1 #

We can add a log volume to a mirror pool....

root@mysrv1 # zpool add mirp log c5d3
root@mysrv1 #
root@mysrv1 #
root@mysrv1 # zpool status mirp
  pool: mirp
 state: ONLINE
 scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mirp        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c5d1    ONLINE       0     0     0
            c5d2    ONLINE       0     0     0
        logs
          c5d3      ONLINE       0     0     0

errors: No known data errors
root@mysrv1 #
root@mysrv1 # zpool remove mirp c5d3         ---- removing a log vol from pool..
root@mysrv1 #

NOTE : We cannot remove c#d#: only inactive hot spares, cache, top-level, or log devices can be removed

root@mysrv1 #
root@mysrv1 # zpool status mirp                   ---- since this is a log vol it got removed. 
 pool: mirp
 state: ONLINE
 scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mirp        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c5d1    ONLINE       0     0     0
            c5d2    ONLINE       0     0     0

errors: No known data errors
root@mysrv1 #

Similarly we can add or remove cache to a mirror pool...

root@mysrv1 # zpool add mirp cache c5d3
root@mysrv1 #
root@mysrv1 #
root@mysrv1 # zpool status mirp
  pool: mirp
 state: ONLINE
 scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mirp        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c5d1    ONLINE       0     0     0
            c5d2    ONLINE       0     0     0
         cache
           c5d3      ONLINE       0     0     0

errors: No known data errors

root@mysrv1 #
root@mysrv1 #
root@mysrv1 # zpool remove mirp c5d3
root@mysrv1 #

Considering a hard disk failure we can allocate a spare disk in advance , so that we can simply replace the faulted disk with the spare disk when a disk is failed.

root@mysrv1 # zpool add mirp spare c5d3
root@mysrv1 #
root@mysrv1 #
root@mysrv1 # zpool status mirp
  pool: mirp
 state: ONLINE
 scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mirp        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c5d1    ONLINE       0     0     0
            c5d2    ONLINE       0     0     0
        spares
          c5d3      AVAIL

errors: No known data errors
root@mysrv1 #
root@mysrv1 #

Assume c5d2 disk failed and we need to replace it with hot spare....

root@mysrv1 # zpool replace mirp c5d2 c5d3
root@mysrv1 #
root@mysrv1 #
root@mysrv1 # zpool status mirp
  pool: mirp
 state: ONLINE
 scan: resilvered 104K in 0h0m with 0 errors on Mon Apr 14 07:22:03 2014
config:

        NAME         STATE     READ WRITE CKSUM
        mirp         ONLINE       0     0     0
          mirror-0   ONLINE       0     0     0
            c5d1     ONLINE       0     0     0
            spare-1  ONLINE       0     0     0
              c5d2   ONLINE       0     0     0
              c5d3   ONLINE       0     0     0
        spares
          c5d3       INUSE     currently in use

errors: No known data errors
root@mysrv1 #
root@mysrv1 #

Once the spare disk is resilvered successfully , we can detach the failed disk.....

root@mysrv1 # zpool status mirp
  pool: mirp
 state: ONLINE
 scan: resilvered 104K in 0h0m with 0 errors on Mon Apr 14 07:22:03 2014
config:

        NAME         STATE     READ WRITE CKSUM
        mirp         ONLINE       0     0     0
          mirror-0   ONLINE       0     0     0
            c5d1     ONLINE       0     0     0
            spare-1  ONLINE       0     0     0
              c5d2   ONLINE       0     0     0
              c5d3   ONLINE       0     0     0
        spares
          c5d3       INUSE     currently in use

errors: No known data errors
root@mysrv1 #
root@mysrv1 #
root@mysrv1 # zpool detach mirp c5d2         --- detaching failed disk...
root@mysrv1 #
root@mysrv1 #
root@mysrv1 # zpool status mirp
  pool: mirp
 state: ONLINE
 scan: resilvered 104K in 0h0m with 0 errors on Mon Apr 14 07:22:03 2014
config:

        NAME        STATE     READ WRITE CKSUM
        mirp        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c5d1    ONLINE       0     0     0
            c5d3    ONLINE       0     0     0

errors: No known data errorsroot@mysrv1 #

##################################################################################

No comments:

Post a Comment