Adding a hard drive for /export/home under ZFS

Summary: added a new hard drive to my "OpenSolaris 2009.06 snv_111b" system and attached it to /export/home. 

The first step was easy: my Sun Ultra 24 had a free drive bay, so I stuck the new drive into the running system, ran "devfsadm -C -v" and then from "format" I could see that the disk was available to OpenSolaris as "c9d0"

Next, a decision needed to be made with respect to how to utilize the drive. I considered using several approaches, such as adding the disk to the existing rpool.  After considering my potential future projects, I decided to attach the disk as a new zpool that would only contain /export/home.  Isolating /export/home should yield some flexibility when I play nasty games with the root drive.

The process was slightly complicated by the fact that logging into OpenSolaris as root is disabled by default. To allow root login, I removed "type=role;" from the root line in /etc/user_attr.  Then, the following commands were executed while logged in as root.

Before:

# zfs list
NAME                         USED  AVAIL  REFER  MOUNTPOINT
new                           79K   685G    19K  /new
rpool                       26.2G   202G  82.5K  /rpool
rpool/ROOT                  16.4G   202G    19K  legacy
rpool/ROOT/opensolaris       262M   202G  5.25G  /
rpool/ROOT/opensolaris-1    25.0M   202G  5.65G  /tmp/tmpOM0whB
rpool/ROOT/opensolaris-2    33.4M   202G  6.59G  /
rpool/ROOT/opensolaris-3     171M   202G  6.59G  /
rpool/ROOT/opensolaris-4    17.4M   202G  6.72G  /
rpool/ROOT/opensolaris-5     106M   202G  6.72G  /
rpool/ROOT/opensolaris-6    15.8G   202G  14.6G  /
rpool/dump                  3.97G   202G  3.97G  -
rpool/export                1.82G   202G    21K  /export
rpool/export/home           1.82G   202G    22K  /export/home
rpool/export/home/jeff      1.82G   202G  1.82G  /export/home/jeff
rpool/swap                  3.97G   206G   101M  -

Commands:


# 1) Create a zpool on the new disk

     zpool create new c9d0

# 2) Create a snapshot of the existing data

     zfs snapshot -r rpool/export@July26 

# 3) Copy the data to the new hard drive

     zfs send rpool/export@July26 | zfs receive new/export
     zfs send rpool/export/home@July26 | zfs receive new/export/home
     zfs send rpool/export/home/jeff@July26 | zfs receive new/export/home/jeff

# 4) Rename the old dataset

     zfs rename rpool/export rpool/export_old

# 5) Push the old dataset to a new mount point for archival 

     zfs unmount rpool/export_old/home/jeff
     zfs unmount rpool/export_old/home
     zfs set mountpoint=/export_old rpool/export_old
     zfs set mountpoint=/export_old/home rpool/export_old/home
     zfs set mountpoint=/export_old/home/jeff rpool/export_old/home/jeff
     zfs mount rpool/export_old/home
     zfs mount rpool/export_old/home/jeff

# 6) Put the new hard drive on /export

     zfs set mountpoint=/export new/export

When I was satisfied that I could log in as "jeff" and see the data on the new disk, I cleaned up the old disk:

# 7) cleaned up the old disk

     zfs destroy rpool/export_old/home/jeff@July26
     zfs destroy rpool/export_old/home/jeff
     zfs destroy rpool/export_old/home@July26
     zfs destroy rpool/export_old/home
     zfs destroy rpool/export_old@July26
     zfs destroy rpool/export_old

After:

# zpool status
  pool: new
 state: ONLINE
 scrub: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	new         ONLINE       0     0     0
	  c9d0      ONLINE       0     0     0

errors: No known data errors

  pool: rpool
 state: ONLINE
 scrub: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	rpool       ONLINE       0     0     0
	  c8d0s0    ONLINE       0     0     0

errors: No known data errors

# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
new                       1.86G   683G    19K  /new
new/export                1.86G   683G    21K  /export
new/export/home           1.86G   683G    22K  /export/home
new/export/home/jeff      1.86G   683G  1.82G  /export/home/jeff
rpool                     24.4G   204G  82.5K  /rpool
rpool/ROOT                16.4G   204G    19K  legacy
rpool/ROOT/opensolaris     262M   204G  5.25G  /
rpool/ROOT/opensolaris-1  25.0M   204G  5.65G  /tmp/tmpOM0whB
rpool/ROOT/opensolaris-2  33.4M   204G  6.59G  /
rpool/ROOT/opensolaris-3   171M   204G  6.59G  /
rpool/ROOT/opensolaris-4  17.4M   204G  6.72G  /
rpool/ROOT/opensolaris-5   106M   204G  6.72G  /
rpool/ROOT/opensolaris-6  15.8G   204G  14.7G  /
rpool/dump                3.97G   204G  3.97G  -
rpool/swap                3.97G   208G   101M  -

Mission accomplished without needing to reboot the system!

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

user12620111

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today