Indescribable Place
FreeBSD에서 gmirror를 사용해서 RAID1 구성하는 법 본문
아 웬만하면 이런 류의 글은 적지 않으려고 했는데, 한글로 된 자료를 검색하다 포기하고나서 보니 FreeBSD 핸드북의 영문판에 방법이 적혀 있었다. 한국 FreeBSD에서 제공하는 핸드북은 5.x 버전이고, gmirror가 등장한게 6.x 버전이라서 한글 핸드북에는 vinum에 대한 설명만 있던것. 근데 아무래도 vinum은 좀 어려워서... gmirror를 이용하여 설정 완료. 그래서 간단히 여기에 적어보려고 한다. 원문은 http://www.freebsd.org/doc/en/books/handbook/geom-mirror.html
1. 시작
# gmirror label -vb round-robin gm0 /dev/da0
/dev/da0은 미러링할 하드. atacontrol list 따위의 명령으로 확인할 수 있다.
미러링 방식은 round-robin 방식이라는 얘기고,
가상으로 만들어질 드라이브의 이름은 gm0이 된다.
2. 위의 명령을 했을때 무슨 권한이 어쩌구 하면서 안될때가 있다
# sysctl kern.geom.debugflags=17
그럴땐 sysctl 명령을 사용해서 저렇게 값을 바꿔준다.
1번의 명령이 성공했다면
Metadata value stored on /dev/da0.
Done.
요따위 메시지가 나온다.
3. 모듈 로딩
# gmirror load
를 사용해서 gmirror 모듈을 로딩한다. 성공하면 /dev/mirror 아래에 위에서 정의했던 gm0이 생긴다고 한다. 이 모듈이 부팅시에 로딩 되도록 하기 위해서는 /boot/loader.conf 파일에
geom_mirror_load="YES"
이 문장을 추가해두면 된다.
4. fstab 변경
자 이제 조심스럽게 /etc/fstab을 변경하자. 일단 기존의 fstab은 fstab.bak 정도로 백업해두고, /etc/fstab의 내용을 열어서 아래와 같이 da0 라고 되어 있는 부분을 gm0로 변경하자.
/dev/da0s1b
/dev/da0s1a
/dev/da0s1d
/dev/da0s1f
처럼 되어 있는 부분을
/dev/mirror/gm0s1b
/dev/mirror/gm0s1a
/dev/mirror/gm0s1d
/dev/mirror/gm0s1f
이런 식으로 변경한다. 원문에 보면 친절하게 vi에서 :%s/da/mirror\/gm/g 이렇게 replace 명령을 사용하라고 알려준다.
5. 리부팅
# shutdown -r now
6. 일단 상태 확인
# df -k 등의 명령을 이용해서 확인하자.
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/mirror/gm0s1a 1012974 224604 707334 24% /
devfs 1 1 0 100% /dev
/dev/mirror/gm0s1f 45970182 28596 42263972 0% /home
/dev/mirror/gm0s1d 6090094 1348356 4254532 24% /usr
/dev/mirror/gm0s1e 3045006 2241420 559986 80% /var
devfs 1 1 0 100% /var/named/dev
보통 이런 정도로 확인이 가능하다.
7. 미러링 하드 추가
# gmirror insert gm0 /dev/da1
gm0에 da1 디스크를 추가한다. da2 등을 계속 추가하면 3개 미러링이 된다.
8. 확인
# gmirror status
바로 이런 명령으로 상태를 확인 할 수 있는데,
Name Status Components
mirror/gm0 COMPLETE da0
da1
이렇게 나오면 제대로 동작하는 거지만 보통은
Name Status Components
mirror/gm0 DEGRADED da0
da1(1%)
이런 식으로 나온다. 두 하드를 동기화 하고 있다는 뜻이고, 200기가 정도일때 1시간 이내에 동기화가 완료되고 COMPLETE 상태가 되었던것 같다. 이러면 끝. 상세한 건 처음의 링크를 참조.
1. 시작
# gmirror label -vb round-robin gm0 /dev/da0
/dev/da0은 미러링할 하드. atacontrol list 따위의 명령으로 확인할 수 있다.
미러링 방식은 round-robin 방식이라는 얘기고,
가상으로 만들어질 드라이브의 이름은 gm0이 된다.
2. 위의 명령을 했을때 무슨 권한이 어쩌구 하면서 안될때가 있다
# sysctl kern.geom.debugflags=17
그럴땐 sysctl 명령을 사용해서 저렇게 값을 바꿔준다.
1번의 명령이 성공했다면
Metadata value stored on /dev/da0.
Done.
요따위 메시지가 나온다.
3. 모듈 로딩
# gmirror load
를 사용해서 gmirror 모듈을 로딩한다. 성공하면 /dev/mirror 아래에 위에서 정의했던 gm0이 생긴다고 한다. 이 모듈이 부팅시에 로딩 되도록 하기 위해서는 /boot/loader.conf 파일에
geom_mirror_load="YES"
이 문장을 추가해두면 된다.
4. fstab 변경
자 이제 조심스럽게 /etc/fstab을 변경하자. 일단 기존의 fstab은 fstab.bak 정도로 백업해두고, /etc/fstab의 내용을 열어서 아래와 같이 da0 라고 되어 있는 부분을 gm0로 변경하자.
/dev/da0s1b
/dev/da0s1a
/dev/da0s1d
/dev/da0s1f
처럼 되어 있는 부분을
/dev/mirror/gm0s1b
/dev/mirror/gm0s1a
/dev/mirror/gm0s1d
/dev/mirror/gm0s1f
이런 식으로 변경한다. 원문에 보면 친절하게 vi에서 :%s/da/mirror\/gm/g 이렇게 replace 명령을 사용하라고 알려준다.
5. 리부팅
# shutdown -r now
6. 일단 상태 확인
# df -k 등의 명령을 이용해서 확인하자.
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/mirror/gm0s1a 1012974 224604 707334 24% /
devfs 1 1 0 100% /dev
/dev/mirror/gm0s1f 45970182 28596 42263972 0% /home
/dev/mirror/gm0s1d 6090094 1348356 4254532 24% /usr
/dev/mirror/gm0s1e 3045006 2241420 559986 80% /var
devfs 1 1 0 100% /var/named/dev
보통 이런 정도로 확인이 가능하다.
7. 미러링 하드 추가
# gmirror insert gm0 /dev/da1
gm0에 da1 디스크를 추가한다. da2 등을 계속 추가하면 3개 미러링이 된다.
8. 확인
# gmirror status
바로 이런 명령으로 상태를 확인 할 수 있는데,
Name Status Components
mirror/gm0 COMPLETE da0
da1
이렇게 나오면 제대로 동작하는 거지만 보통은
Name Status Components
mirror/gm0 DEGRADED da0
da1(1%)
이런 식으로 나온다. 두 하드를 동기화 하고 있다는 뜻이고, 200기가 정도일때 1시간 이내에 동기화가 완료되고 COMPLETE 상태가 되었던것 같다. 이러면 끝. 상세한 건 처음의 링크를 참조.