ZFS 기반의 NAS/SAN 스토리지 만들기

모든 준비과정을 마쳤으니 이제 실제로 스토리지 서비스를 해보자.
nfs,cifs 등에 대한 내용은 인터넷에 꽤 많이 나와 있으므로 필자는 FC로 구성해 본다.
앞 장에서 Target Mode로 설정을 해뒀으니 실제로 구성은 아주 간단하다.
NexentaStor를 사용하거나 napp-it을 이용하면 아래의 과정들은 모두 GUI로 가능하다.
전체적인 과정을 공부하고 이해하기에는 CLI 모드가 아무래도 나을 것이다.(물론 필자는 콘솔 환경이 편하다^^)
[ 구성환경 ]
스토리지 서버: OmniOS on HP DL180G6
클라이언트: Windows server 2008R2 on Dell 2950
위 두대의 서버는 각각 FC케이블로 연결이 되어 있다.
[ 용어정리 ]
Target: 볼륨을 제공하여 클라이언트들의 대상이 되는 시스템(그냥 스토리지 서버측이라고 생각하자)
Initiator: 스토리지 서버가 제공하는 타겟에 접근하는 시스템(클라이언트)
LU: logical unit의 약자로 쉽게 이해하자면 zvol을 이용한 논리디스크(그냥 가상디스크라고 생각하자)
WWN: world wide name의 약자로 FC,ATA,SAS 장치들의 고유한 번호
WWPN: World Wide Port Name의 약자로 FC의 포트에 할당된 고유값이다.
GUID: global unique identification(LUN의 고유값)
FC Target 서비스
전체적인 작업 절차는 아래와 같다.

[ 스토리지 서버측 작업 ]

1. zpool 명령으로 스토리지풀 생성
2. zfs 명령으로 zvol(가상디스크) 생성
3. stmfadm  명령으로 LU(logical unit) 생성하고 client(windows,Linux,etc)에서 접근하도록(보이도록) 설정(SAN 스토리지에서는 VD mapping 또는 lun binding이라고도 합니다)

옵션사항)
2번에서 생성된 볼륨을 특정 호스트들만 접근하도록 하려면 호스트 그룹을 생성하고 연결할 LU를 추가해 준다.
구성하는 방법은 강좌를 진행하면서 다루도록 하겠다.

 

[ 클라이언트측 작업(windows) ]

1. 디스크 관리자 실행, 디스크 새로 고침
2. 초기화,파티션,포맷 후 사용

 

1.1 CLI MODE

1.1.1 STMF 서비스 시작

root@zfs-server:/root# svcadm enable stmf
root@zfs-server:/root# svcs stmf
STATE          STIME    FMRI
online         17:57:06 svc:/system/stmf:default

 

1.1.2 스토리지풀 생성 및 zvol생성

필자의 경우 4T 디스크 두개를 mirror로 구성을 하였다.
윈도우에서 사용할 3개의 zvol을 생성하였다 구분이 되도록 각각 100G,200G,300G로 생성했다.
root@zfs-server:/root# zpool create SANPOOL mirror c1t5000CCA23DEF575Dd0 c1t5000CCA23DF49A37d0
root@zfs-server:/root# zpool list
NAME      SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
SANPOOL  3.62T   296K  3.62T         -     0%     0%  1.00x  ONLINE  -
rpool     119G  9.99G   109G         -     4%     8%  1.00x  ONLINE  -
root@zfs-server:/root# zfs create -V 100G SANPOOL/lu00
root@zfs-server:/root# zfs create -V 200G SANPOOL/lu01
root@zfs-server:/root# zfs create -V 300G SANPOOL/lu02
root@zfs-server:/root# zfs list   
NAME                   USED  AVAIL  REFER  MOUNTPOINT
SANPOOL                619G  2.91T    96K  /SANPOOL
SANPOOL/lu00           103G  3.01T    64K  -
SANPOOL/lu01           206G  3.11T    64K  -
SANPOOL/lu02           309G  3.21T    64K  -

 

1.1.3 LU 생성 및 할당

참고)
생성된 zvol은 /dev/zvol/rdisk/스토리지풀이름/zvol이름 형태로 생성이 됩니다.
  • LU생성

stmfadm create-lu 명령으로 LU를 생성하게되면 자동으로 GUID를 생성해 준다.
여기서 생성된 GUID를 가지고 호스트(클라이언트)와 LU를 맵핑시켜 준다.

root@zfs-server:/root# stmfadm create-lu /dev/zvol/rdsk/SANPOOL/lu00 
Logical unit created: 600144F00AAF84260000555318910001
root@zfs-server:/root# stmfadm create-lu /dev/zvol/rdsk/SANPOOL/lu01 
Logical unit created: 600144F00AAF84260000555318950002
root@zfs-server:/root# stmfadm create-lu /dev/zvol/rdsk/SANPOOL/lu02
Logical unit created: 600144F00AAF84260000555318970003
root@zfs-server:/root# stmfadm list-lu   
LU Name: 600144F00AAF84260000555318910001
LU Name: 600144F00AAF84260000555318950002
LU Name: 600144F00AAF84260000555318970003

 

  • LU 할당

생성한 LU를 연결된 모든 Initiator 에서 접근하도록 해준다.

root@zfs-server:/root# stmfadm add-view 600144F00AAF84260000555318910001

 

1.2 GUI Mode

napp-it를 설치하고 GUI환경에서 Target을 생성해 본다.

1.2.1 napp-it설치하기

인터넷에 연결된 상태에서 아래와 같이 명령을 내리면 필요한 패키지들과 함께 자동으로 설치가 된다.
설치가 완료되면 WEB GUI를 이용해서 여러 설정을 할 수 있게 된다.
기본값으로 http://스토리지서버IP:81 로 설정이 된다.

root@zfs-server:/root# wget -O - www.napp-it.org/nappit | perl

 

참고)
맥OS에 공유서버를 지원하기 위해서는 아래와 같이 afp를 지원하도록 netatalk를 설치해 준다.

root@zfs-server:/root# wget -O - www.napp-it.org/afp | perl 

웹브라우저로 http://스토리지서버IP:81에 접속하면 admin 계정으로 로그인을 하게 되며
기본설정 화면이 나온다. 패스워드,이메일 계정등을 셋업해 주자.

1.3 클라이언트 연결하기

  • 디스크 관리자에서 디스크 새로 고침

 

  • 듀얼포트 HBA에 모두 연결해둬서 디스크가 2개가 보인다. 추후 MPIO셋업을 하면 한 개만 보일 것이다.
zfs_client1

 

  • 디스크가 연결되면 로컬 디스크 처럼 포맷하고 사용하면 된다.
zfs_client2

 

Pages:

stone has written 25 articles

Leave a Reply