Tuesday, July 24, 2012

Mirror disk Solaris

Tài liệu cấu hình
 Nội dung:
-          Thực hiện mirror đĩa boot cho máy v240 - Solaris

Các bước tiến hành:
            Bài lab được thực hiện trên máy v240. Máy chạy Solaris 10, có 2 HDD dung lượng bằng nhau.
                       
#1: Sao lưu /etc/vfstab và  /etc/system
            #2: Kiểm tra thông tin các HDD
            #3: Tạo 1 slice nhỏ trên đĩa boot, dung lượng khoảng 32Mb để chứa volume databases
            #4: Thực hiện copy VTOC từ đĩa boot sang đĩa mirror
            #5: Tạo metadatabases trên slice 32Mb của đĩa boot
            #6: Mirror lần lượt cho các slice
            #7: Sửa file /etc/vfstab
            #8: Cấu hình dumpadm
            #9: Reboot máy
            #10: Attach submirror
            #11: Cấu hình boot devices
            #12: Tháo đĩa boot & restart
            #13: Kiểm tra hệ thống hoạt động bình thường

 
#1: Tiến hành sao lưu /etc/vfstab và  /etc/system

# cp -p /etc/system /etc/system.orig."date"

# cp -p /etc/vfstab /etc/vfstab.orig."date"

Xoa swap trong truong hop boot disk ko con slide trong de tao metadb

3.1) To list your swap, use: swap -l
(It's good if you have more than one slice configured as swap.)
3.2) Execute:
swap -d swap-name ( /dev/dsk/c?ct?d?s?)

NOINUSE_CHECK=1
export NOINUSE_CHECK

Change your partition table to incorporate a new slice by reducing the size or cylinder length of the swap partition. 
Sau khi resize xong có thể tạo lại swap
3.3) Execute:
swap -a swap-name ( /dev/dsk/c?t?d?s?)

#2: Kiểm tra thông tin HDD trước khi thực hiện

# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c1t0d0
          /pci@1c,600000/scsi@2/sd@0,0
       1. c1t2d0
          /pci@1c,600000/scsi@2/sd@2,0

Thông tin đĩa boot (c1t2d0)


partition> p
Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -  4121       20.00GB    (4122/0/0)   41945472
  1       swap    wu    4122 -  6182       10.00GB    (2061/0/0)   20972736
  2     backup    wm       0 - 14086       68.35GB    (14087/0/0) 143349312
  3        var    wm    6183 - 11335       25.00GB    (5153/0/0)   52436928
  4 unassigned    wm   11336 - 14079       13.31GB    (2744/0/0)   27922944
  5 unassigned    wm   14080 - 14086       34.78MB    (7/0/0)         71232
  6 unassigned    wm       0                0         (0/0/0)             0
  7 unassigned    wm       0                0         (0/0/0)             0

Thông tin đĩa làm mirror (c1t0d0)

partition> p
Current partition table (original):
Total disk sectors available: 143358320 + 16384 (reserved sectors)

Part      Tag    Flag     First Sector         Size         Last Sector
  0        usr    wm               256       68.36GB          143358320   
  1 unassigned    wm                 0           0               0   
  2 unassigned    wm                 0           0               0   
  3 unassigned    wm                 0           0               0   
  4 unassigned    wm                 0           0               0   
  5 unassigned    wm                 0           0               0   
  6 unassigned    wm                 0           0               0   
  8   reserved    wm         143358321        8.00MB          143374704   



#3: Trên đĩa boot, tạo 1 slice khoảng 32Mb để lưu volume databases (slice 5)

5 unassigned    wm   14080 - 14086       34.78MB    (7/0/0)         71232

Nếu chưa có slice là đĩa lưu metadb có thể resize đĩa swap lấy 500M làm đĩa lưu  metadb 
VD:

==> Resize lại slice 1 để dùng slice 5 khoảng tối thiểu 500M lưu metadb
partition> 1
Part      Tag    Flag     Cylinders         Size            Blocks
  1       swap    wu       0 -  3297       16.00GB    (3298/0/0)   33560448

Enter partition id tag[swap]:
Enter partition permission flags[wu]:
Enter new starting cyl[0]:
Enter partition size[33560448b, 3298c, 3297e, 16386.94mb, 16.00gb]:  15.00gb

partition> print
Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm    3298 - 14086       52.35GB    (10789/0/0) 109788864
  1       swap    wu       0 -  3091       15.00GB    (3092/0/0)   31464192
  2     backup    wm       0 - 14086       68.35GB    (14087/0/0) 143349312
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm    3092 -  3297     1023.56MB    (206/0/0)     2096256
  6 unassigned    wm       0                0         (0/0/0)             0
  7 unassigned    wm       0                0         (0/0/0)             0


Chú ý: Tạo slice 5 bắt đầu cyl[0]: là số 3091+1= 3092
sau khi xong phải tạo label cho disk nó mới lưu lại
partition> label
Ready to label disk, continue? y
partition> q
format> q



partition> 5
Part      Tag    Flag     Cylinders         Size            Blocks
  5 unassigned    wm       0                0         (0/0/0)             0

Enter partition id tag[unassigned]: metadb
`metadb' not expected.
Enter partition id tag[unassigned]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]: 3092 
Enter partition size[0b, 0c, 3092e, 0.00mb, 0.00gb]: 3297e
partition> print
Current partition table (unnamed):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm    3298 - 14086       52.35GB    (10789/0/0) 109788864
  1       swap    wu       0 -  3091       15.00GB    (3092/0/0)   31464192
  2     backup    wm       0 - 14086       68.35GB    (14087/0/0) 143349312
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm    3092 -  3297     1023.56MB    (206/0/0)     2096256
  6 unassigned    wm       0                0         (0/0/0)             0
  7 unassigned    wm       0                0         (0/0/0)             0

partition> label
Ready to label disk, continue? y

partition> q    
#4: Copy VTOC (Volume tables of contents) từ đĩa boot (c1t2d0) sang đĩa làm mirror (c1t0d0)

# prtvtoc /dev/rdsk/c1t2d0s2 | fmthard -s - /dev/rdsk/c1t0d0s2

Kiểm tra lại VTOC của đĩa mirror


partition> p
Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -  4121       20.00GB    (4122/0/0)   41945472
  1       swap    wu    4122 -  6182       10.00GB    (2061/0/0)   20972736
  2     backup    wm       0 - 14086       68.35GB    (14087/0/0) 143349312
  3        var    wm    6183 - 11335       25.00GB    (5153/0/0)   52436928
  4 unassigned    wm   11336 - 14079       13.31GB    (2744/0/0)   27922944
  5 unassigned    wm   14080 - 14086       34.78MB    (7/0/0)         71232
  6 unassigned    wu       0                0         (0/0/0)             0
  7 unassigned    wu       0                0         (0/0/0)             0

#5: Tạo metadatabases trên slice 5 của đĩa boot và đĩa mirror (slice 5 vừa tạo ở trên)

# metadb -f -a -c3 c1t2d0s5

 # metadb -a -c3 c1t0d0s5



#6: Tạo mirror cho mỗi slice trên đĩa, đầu tiên với slice 0

# metainit -f d10 1 1 c1t2d0s0
d10: Concat/Stripe is setup
# metainit d20 1 1 c1t0d0s0
d20: Concat/Stripe is setup
# metainit d0 -m d10
d0: Mirror is setup
# metaroot d0
# lockfs -fa

Mirror cho slice 1

# metainit -f d11 1 1 c1t2d0s1
d11: Concat/Stripe is setup
# metainit d21 1 1 c1t0d0s1
d21: Concat/Stripe is setup
# metainit d1 -m d11
d1: Mirror is setup

Chú ý: Nếu slice 3,4,6 là rỗng không cần tạo bước dưới đây, và slice là tổng dung lượng của disk nên không cần tạo slice 2

Mirror cho slice 3

# metainit -f d13 1 1 c1t2d0s3
d13: Concat/Stripe is setup
# metainit d23 1 1 c1t0d0s3
d23: Concat/Stripe is setup
# metainit d3 -m d13
d3: Mirror is setup

Mirror cho slice 4

# metainit -f d14 1 1 c1t2d0s4
d14: Concat/Stripe is setup
# metainit d24 1 1 c1t0d0s4
d24: Concat/Stripe is setup
# metainit d4 -m d14
d4: Mirror is setup

Chú ý trong trường hợp tạo sai có thể xóa nó 
bash-3.2# metaclear d0
d0: Mirror is cleared
bash-3.2# metaclear d10
d10: Concat/Stripe is cleared
bash-3.2# metaclear d20
d20: Concat/Stripe is cleared

#7: Sửa file /etc/vfstab

 Chú ý rào các dòng này lại
#/dev/dsk/c1t2d0s1 
#/dev/dsk/c1t2d0s3
#/dev/dsk/c1t2d0s4 


bash-3.00# cat /etc/vfstab
#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
#
fd      -       /dev/fd fd      -       no      -
/proc   -       /proc   proc    -       no      -

#/dev/dsk/c1t2d0s1      -       -       swap    -       no      -

/dev/md/dsk/d1  -       -       swap    -       no      -
/dev/md/dsk/d0  /dev/md/rdsk/d0 /       ufs     1       no      -

#/dev/dsk/c1t2d0s3      /dev/rdsk/c1t2d0s3      /var    ufs     1       no      -

/dev/md/dsk/d3  /dev/md/rdsk/d3 /var    ufs     1       no      -
#/dev/dsk/c1t2d0s4      /dev/rdsk/c1t2d0s4      /opt    ufs     2       yes     -
/dev/md/dsk/d4     /dev/md/rdsk/d4 /opt    ufs     2       yes     -

/devices        -       /devices        devfs   -       no      -
sharefs -       /etc/dfs/sharetab       sharefs -       no      -
ctfs    -       /system/contract        ctfs    -       no      -
objfs   -       /system/object  objfs   -       no      -
swap    -       /tmp    tmpfs   -       yes     -



#8: Cấu hình dumpadm


bash-3.00# dumpadm
      Dump content: kernel pages
       Dump device: /dev/dsk/c1t2d0s1 (swap)
Savecore directory: /var/crash/net1
  Savecore enabled: yes

bash-3.00# dumpadm -d /dev/md/dsk/d1 
      Dump content: kernel pages
       Dump device: /dev/md/dsk/d1 (dedicated)
Savecore directory: /var/crash/net1
  Savecore enabled: yes


bash-3.00# vi /etc/system
* Begin MDD root info (do not edit)
rootdev:/pseudo/md@0:0,0,blk
set md:mirrored_root_flag=1
* End MDD root info (do not edit)

#9: Reboot system

# init 6

#10: Attach submirror

# metattach d0 d20
d0: submirror d20 is attached
# metattach d1 d21
d1: submirror d21 is attached
# metattach d3 d23
d3: submirror d23 is attached
# metattach d4 d24
d4: submirror d24 is attached

Kiểm tra quá trình sync

# metastat | grep progress
    Resync in progress: 3 % done
    Resync in progress: 3 % done
    Resync in progress: 12 % done
    Resync in progress: 11 % done


Chú ý: sau khi sync xong mới được phép rút đĩa ra test
#11: Cấu hình boot devices

Xem path của boot devices

# ls -l /dev/dsk/c1t2d0s0 /dev/dsk/c1t0d0s0
lrwxrwxrwx   1 root     root          43 Apr 27 17:01 /dev/dsk/c1t0d0s0 -> ../../devices/pci@1c,600000/scsi@2/sd@0,0:a
lrwxrwxrwx   1 root     root          43 Apr 27 17:01 /dev/dsk/c1t2d0s0 -> ../../devices/pci@1c,600000/scsi@2/sd@2,0:a

Tạo alias cho boot devices – hệ thống sẽ dự phòng boot từ mirror

# eeprom "nvramrc=devalias rootdisk /pci@1c,600000/scsi@2/disk@2,0 dev
alias rootmirror /pci@1c,600000/scsi@2/disk@0,0"

# eeprom "use-nvramrc?=true"

# eeprom boot-device="rootdisk rootmirror net"



#12: Tháo đĩa boot & restart

bash-3.00# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c1t0d0
          /pci@1c,600000/scsi@2/sd@0,0
Specify disk (enter its number):

#13: Kiểm tra hệ thống hoạt động bình thường


----------------------------------------------------------------
Ref Materials:
-                                                                                                               Solaris Volume Manager Administration Guide
-                                                                                                               Intermediate SystemAdministration for the Solaris™ 10

====================================
sau khi insert dia moi vao
====================================
   root@solaris:~ # metastat d50
    d50: Mirror
    Submirror 0: d51
    State: Needs maintenance
    Submirror 1: d52
    State: Okay
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 32776896 blocks (15 GB)

    d51: Submirror of d50
    State: Needs maintenance
    Invoke: metareplace d50 c0t0d0s5
    Size: 32776896 blocks (15 GB)
    Stripe 0:
    Device Start Block Dbase State Reloc Hot Spare
    c0t0d0s5 0 No Maintenance Yes

    d52: Submirror of d50
    State: Okay
    Size: 32776896 blocks (15 GB)
    Stripe 0:
    Device Start Block Dbase State Reloc Hot Spare
    c0t1d0s5 0 No Okay Yes

    Device Relocation Information:
    Device Reloc Device ID
    c0t0d0 Yes id1,sd@n500000e013633ce0
    c0t1d0 Yes id1,sd@n500000e013633810

=========================================================
resync dia (thuc hien lai, cho tat ca cac slide (d0,d1.,d5))
=========================================================
    root@solaris:~ # metareplace -e d50 /dev/dsk/c0t0d0s5
    d50: device c0t0d0s5 is enabled

    root@solaris:~ # metastat d50
    d50: Mirror
    Submirror 0: d51
    State: Resyncing
    Submirror 1: d52
    State: Okay
    Resync in progress: 0 % done
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 32776896 blocks (15 GB)

    d51: Submirror of d50
    State: Resyncing
    Size: 32776896 blocks (15 GB)
    Stripe 0:
    Device Start Block Dbase State Reloc Hot Spare
    c0t0d0s5 0 No Resyncing Yes

    d52: Submirror of d50
    State: Okay
    Size: 32776896 blocks (15 GB)
    Stripe 0:
    Device Start Block Dbase State Reloc Hot Spare
    c0t1d0s5 0 No Okay Yes

    Device Relocation Information:
    Device Reloc Device ID
    c0t0d0 Yes id1,sd@n500000e013633ce0
    c0t1d0 Yes id1,sd@n500000e013633810
-------------------------

Neu xay ra loi sau khi tao mirror,
Vao ok mode boot cdrom vao sigle mode,
Edit lai /etc/vfstab trong truong hop edit sai.
--------------
Neu trong truong hop khong sua duoc mirror
Vao ok mode boot cdrom vao single mode
Mkdir a
Mount /dev/dsk/c1t0d0s0 /a
Cp etc/vfstab etc/vfstab.orig
Cp etc/system etc/system.orig

Dumpadm –d /dev/dsk/c1t0d0s1

Reboot server.

Sau khi reboot,

Dung lenh
metadb –d /dev/dsk/c1t0d0s5
metadb –d /dev/dsk/c1t1d0s5.

Reboot lai server.

No comments: