Search Results for 'metadb'

1 POSTS

  1. 2010.04.12 Solaris DiskSuite (SVM) RAID 구성 및 제거

Solaris DiskSuite (SVM) RAID 구성 및 제거

회사에서  굴러다니는 Ultra 10(SPARC-II 440MHz) 로 RAID 구성을 해보았습니다. (작성일자 : 2010.04.12)

환경 : Solaris 8, SPARC


1. RAID 구성 계획 (RAID 1)


1.1. Disk 구성 확인

format 을 이용하여 Disk  구성을 확인해야합니다.

# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0t0d0 <ST39120A cyl 17660 alt 2 hd 16 sec 63>
          /pci@1f,0/pci@1,1/ide@3/dad@0,0
       1. c0t1d0 <Maxtor 5T020H2 cyl 38790 alt 2 hd 16 sec 63>
          /pci@1f,0/pci@1,1/ide@3/dad@1,0
Specify disk (enter its number): 0

selecting c0t0d0
[disk formatted, no defect list found]


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
        show       - translate a disk address
        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
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format> p             <- 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             <- p 입력

Current partition table (original):
Total disk cylinders available: 17660 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -  9406        4.52GB    (9407/0/0)   9482256
  1       swap    wu    9407 -  9657      123.54MB    (251/0/0)     253008
  2     backup    wu       0 - 17659        8.49GB    (17660/0/0) 17801280
  3       swap    wm    9658 -  9707       24.61MB    (50/0/0)       50400
  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       home    wm    9708 - 17658        3.82GB    (7951/0/0)   8014608

partition>

위의 내용을 보시면 총 용량은 8.49GB  / 4.52GB  swap 123.54MB   swap 24.61MB   home 3.82GB 로 나오네요.

여기선 제가 미리 metadb 를 사용할 공간을 만들어 놓았습니다.
처음에 swap(metadb) 를 사용할 부분을 만들지 않았다면 2번 슬라이스 swap 를 쪼개서 3번 슬라이스에 넣을수 있습니다.


1.2. Swap(볼륨데이버베이스) 공간 확보하기(c0t0d0s3 을 불륨데이터베이스로 구성)

밑의 내용을 미리 만들지 못한 metadb 용량을 swap 을 이용하여 만드는 방법입니다.

# mkfile 200m /swap1                      <--- 500MB 의 swap1 파일을 만드는 방법입니다.

# swap -l
swapfile             dev  swaplo 블록   사용 가능
/dev/dsk/c0t0d0s1      85,2      16 252992 252992

# swap -a /swap1                 <-- swap 에 임시적으로 500MB 만든 파일을 추가합니다.
              
# swap -l
swapfile             dev  swaplo 블록   사용 가능
/dev/dsk/c0t0d0s1      85,2      16 252992 252992
/swap                 -       16 1023984 1023984                           <-- 추가되었는지 확인

# swap -d /dev/dsk/c0t0d0s1               <-- swap 에서 c0t0d0s1 제거


이제 1.1. Disk 구성하기를 다시 한번 보시고 제가 만든것 처럼 슬라이스 2번 swap의 용량을 줄여서 슬라이스 3번에 조그만하게 만들어 놓으시면 됩니다.

제가 구성한것을 참고 하시고 swap 을 재구성 하신다음 밑의 내용을 보시면 됩니다.

# swap -a /dev/dsk/c0t0d0s1           <-- swap 에서 c0t0d0s1 을 원래대로 추가

# swap -d /swap                            <-- swap 에서 /swap 제거(용량이 많으시면 제거 안하셔도 됩니다. ^^:)



1.3. Disk RAID 구성

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -  9406        4.52GB    (9407/0/0)   9482256
  1       swap    wu    9407 -  9657      123.54MB    (251/0/0)     253008
  2     backup    wu       0 - 17659        8.49GB    (17660/0/0) 17801280
  3       swap    wm    9658 -  9707       24.61MB    (50/0/0)       50400
  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       home    wm    9708 - 17658        3.82GB    (7951/0/0)   8014608


d1          c0t0d0s0, c0t1d0s0
d11         c0t0d0s0 
d12         c0t1d0s0

d2          c0t0d0s7, c0t1d0s7
d21         c0t0d0s7
d22         c0t1d0s7

d3          c0t0d0s1, c0t1d0s1
d31         c0t0d0s1
d32         c0t1d0s1

이렇게 미리 구성 계획을 잡고 하시면 편합니다~



2. RAID 1 구성하기


이제부터는 간단간단 하게 작업 하도록 하겠습니다.


# metadb -f -a c3 c0t0d0s3 c0t1d0s03
or
# prtvtoc /dev/rdsk/c0t0d0s0 | fmthard -s - /dev/rdsk/c0t1d0s0

# metainit -f d11 1 1 d0t0d0s0 (원본)

# metainit d12 1 1 c0t1d0s0

# metainit d1 -m d11 (원본)

# metaroot d1                       <-- /etc/vfstab 에서 root 부분이 c0t0d0s0 에서 d1 로 변경됩니다.


# metainit -f d21 1 1 d0t0d0s0 (원본)

# metainit d22 1 1 c0t1d0s0

# metainit d2 -m d21 (원본)


# metainit -f d31 1 1 d0t0d0s0 (원본)

# metainit d32 1 1 c0t1d0s0

# metainit d3 -m d31 (원본)

# cp /etc/vfstab /etc/vfstab_old                 <-- 백업본으로 복사
# vi /etc/vfstab

/dev/dsk/c0t0d0s7 부분들을 /dev/md/dsk/d2  으로 모두 상황에 맞게 수정해 주세요!

# cp /etc/system /etc/system_old             <-- 백업본으로 복사   
# vi /etc/system

set md:mirrored_root_flag=1           <--   맨 밑에 부분에 추가

# sync;sync;sync;
# reboot -- -r

부팅시 에러 상황 체크 하시길 바랍니다.



# lockfs -fa                        <-- Server 에서 많은 I/O 발생이 있다면 하셔야 합니다.

# metattach d1 d12                    <-- 동기화 작업, d1이 원본 입니다.

# metattach d2 d22                    <-- 동기화 작업, d2이 원본 입니다.

# metattach d3 d32                    <-- 동기화 작업, d3이 원본 입니다.


# metastat          <-- 동기화 진행 상황 체크하세요~


동기화가 끝이 나면 밑의 내용도 보시고 추가 및 수정 하세요!



# ls -l /dev/dsk/c0t0d0s0
lrwxrwxrwx   1 root     root          46 2008년 11월  5일 /dev/dsk/c0t0d0s0 -> ../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a

# ls -l /dev/dsk/c0t0d0s1
lrwxrwxrwx   1 root     root          46 2008년 11월  5일 /dev/dsk/c0t0d0s1 -> ../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:b

# eeprom "nvramrc=devalias rootdisk /pci@1f,0/pci@1,1/ide@3/disk@0,0 devalias rootmirror @1f,0/pci@1,1/ide@3/disk@1,0"

# eeprom "use-nvramrc?=true"

# eeprom boot-device="rootdisk rootmirror net"


이렇게 하시면 끝이 납니다.



3. RAID 제거 방법


# metadetach d1 d12

# metadetach d2 d22

# metadetach d3 d23

# metaroot /dev/dsk/c0t0d0s0    <--  다른 부분들은 /etc/vfstab 에서 수동으로 수정하세요)

# reboot -- -r


# metaclear -r d1 ; metaclear d11
# metaclear -r d2 ; metaclear d21
# metaclear -r d3 ; metaclear d31



4. RAID 복구(Disk Fail) 방법

문제 발생한 Disk 의 metadb 삭제 (예, c0t1d0s0)

# metadb -d -f /dev/dsk/c0t1d0s0

새로운 Disk 추가

# devfsadm or disks             <-- Solaris 8 이상
# devconfig or disks             <-- Solaris 7 이하

추가된 Disk가 format 명령어에서 나타나면 Disk 를 사용할 수 있도록 정리합니다. (newfs 아시죠?)

# metareplace -e d1 c0t1d0s0

복구도 이제 끝~


RAID 구성, 제거, 복구 방법을 대충 대충 해놓았는지라 설명이 부족할 수 있지만 어느정도 Solaris를 만졌다고 하시는 분들은 대충 아실테니 양해 바래요~