XenServer 5.6에 NAS 구성하기
페이지 정보
작성자 웹지기 댓글 0건 조회 7,809회 작성일 18-09-27 14:16본문
[펌] http://ifwind.tistory.com/10
XenServer의 Local Storage 중 일부를 NAS로 구성하여 리눅스 가상머신에는 NFS로 붙이고, 윈도우 가상머신에는 CFS로 붙이는 구성을 해보았다. XenServer에 NAS를 구성하면 다음과 같은 장점이 있다.
- ISO 라이브러리를 XenServer내에 구성할 수 있다.
- XenServer는 항상 가동중이기 때문에 VM의 상태와 관계없이 안정적인 네트워크 스토리지를 제공할 수 있다.
- VM에서 사용하는 중요 데이터를 XenServer에 저장하고 VM은 마음대로 실습(?)할 수 있다.
참고로 본인의 XenServer 하드웨어는 다음과 같다.
- CPU: AMD 애슬론II-X2 250(레고르)
- MEM: DDR2 2GB
- M/B: Asus M4A78-VM
- HDD: 640GB 5400rpm
- XenServer 5.6
- IP: 192.168.0.2
작업은 다음의 순서로 진행한다.
- nas 용 스토리지를 할당하고 XenServer에 마운트 한다.
- nfs 서비스를 설정한다.
- samba 서비스를 설정한다.
1) nas 용 스토리지를 할당하고 XenServer에 마운트 한다.
이하 작업은 XenServer에 접속해서 수행한다.
XenServer에 nas용 마운트 포인트를 생성하고 쓰기 권한을 풀어준다.
$ mkdir /nas
$ chmod 777 /nas
fdisk 명령으로 확인해보면 우리가 사용할 수 있는 스토리지는 Linux LVM으로 구성되었음을 확인할 수 있다.
$ fdisk -l
Disk /dev/sda: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 523 4194304 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 523 1045 4194304 83 Linux
/dev/sda3 1045 77825 616740673 8e Linux LVM
vgdisplay로 Linux LVM의 VG Name 및 가용량을 확인한다. VG Name은 이후 작업의 입력인자로 사용된다.
$ vgdisplay
--- Volume group ---
VG Name VG_XenStorage-9af52d2d-12da-425b-b7f3-acdf5eb9d4aa
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 23
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 8
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 588.16 GB
PE Size 4.00 MB
Total PE 150568
Alloc PE / Size 123961 / 484.22 GB
Free PE / Size 26607 / 103.93 GB
VG UUID 0yYD2Q-Aq5U-Nvgx-SUyF-2pMN-iOG1-ZkGcem
원하는 용량만큼 lv를 생성한다. lvcreate –L 용량 lv_name VG_ Name 형태로 명령어를 입력한다.
$ lvcreate -L 50GB -n nas_lv VG_XenStorage-9af52d2d-12da-425b-b7f3-acdf5eb9d4aa
생성된 lv를 ext3로 포맷한다.
$ mkfs.ext3 /dev/VG_XenStorage-9af52d2d-12da-425b-b7f3-acdf5eb9d4aa/nas_lv
이제 마운트 해본다.
$ mount /dev/VG_XenStorage-9af52d2d-12da-425b-b7f3-acdf5eb9d4aa/nas_lv /nas
부팅 후에도 자동 마운트 되도록 설정한다.
fstab을 이용하면 편할텐데, 디바이스 파일(/dev/VG_XenStorage-9af52d2d-12da-425b-b7f3-acdf5eb9d4aa/nas_lv)이 재부팅하면 인식되지 않는 현상이 발생한다. 편법으로 자동 실행 스크립트를 만들어서 lvchange 명령으로 디바이스 파일 재생성 및 마운트하도록 구성했다.
$ vi /etc/init.d/nas_mount
#!/bin/sh
#
# chkconfig: 345 20 80
# description: This script takes care of starting \
# and stopping nas_mount
#
# See how we were called.
case "$1" in
start)
# Start set.
echo -n "/nas mounting... "
lvchange -ay VG_XenStorage-9af52d2d-12da-425b-b7f3-acdf5eb9d4aa && \
mount /dev/VG_XenStorage-9af52d2d-12da-425b-b7f3-acdf5eb9d4aa/nas_lv /nas
echo "done"
;;
stop)
# Stop set.
echo "/nas umounting... "
umount /nas
echo "done"
;;
status)
mount | grep /nas
;;
*)
echo "Usage: nas_mount {start|stop|status}"
exit 1
;;
esac
exit 0
이 스크립트를 실행 가능한 파일로 변경하고 자동 실행되도록 설정한다.
$ chmod 755 /etc/init.d/nas_mount
$ chkconfig --level 345 nas_mount on
이제 XenServer를 재부팅하여 /nas에 정상 마운트되는지 확인한다.
$ shutdown -r now
$ df -h # 부팅 완료 후에 확인
2) NFS 서비스를 설정한다.
XenServer에 NFS 서비스를 설정하여 다른 서버에서 /nas를 마운트 할 수 있도록 한다.
먼저 호스트명이 정의되있지 않다면 hosts 파일에 정의한다. 아이피 주소 및 서버명은 본인의 것으로 사용한다.
$ vi /etc/hosts
192.168.0.2 XenServer
/nas 디렉토리를 192.168번대 시스템에서 접근할 수 있도록 설정한다.
$ vi /etc/exports
/nas 192.168.0.0/24(rw,no_root_squash,sync)
옵션설명
- rw: 클라이언트에서 쓰기 가능
- no_root_squash: 클라이언트의 root를 서버의 root로 인정 (root에게 모든 권한 부여)
- sync: write전에 동기화, 반대는 async
※ XenServer 5.6에서 nfs는 극악의 성능을 보이는데 sync를 async로 변경하면 아주 아주 빨라진다. 성능에 불만이 있다면 async를 시도해볼 만 하다. 좀 불안하긴 하겠지만...
XenServer의 portmapper 서비스는 –l 옵션이 기본으로 설정되어 있어 서비스가 제대로 작동하지 않는다. 아래 지시대로 PMAP_ARGS을 주석 처리하여 문제가 없도록 한다.
$ vi /etc/sysconfig/portmap
#PMAP_ARGS=-l # 주석처리
NFS 설정을 적용하고 확인한다.
$ exportfs -a
$ exportfs
/nas 192.168.0.0/24
NFS 관련 서비스를 시작한다.
$ service nfs start
$ service portmap start
정상 작동 중인지 확인한다. 111 포트를 사용하는 portmapper, 2049 포트를 사용하는 nfs등을 확인할 수 있다.
$ rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 600 status
100024 1 tcp 600 status
100021 1 udp 47834 nlockmgr
100021 3 udp 47834 nlockmgr
100021 4 udp 47834 nlockmgr
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 tcp 38515 nlockmgr
100021 3 tcp 38515 nlockmgr
100021 4 tcp 38515 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100005 1 udp 32767 mountd
100005 1 tcp 32767 mountd
100005 2 udp 32767 mountd
100005 2 tcp 32767 mountd
100005 3 udp 32767 mountd
100005 3 tcp 32767 mountd
$ showmount --export
Export list for XenServer:
/nas 192.168.0.0/24
마지막으로 iptables의 설정을 변경하여 NFS 서비스의 포트를 개방해야 한다. 하지만 클라이언트의 portmapper 서비스가 비정규 포트를 사용하기 때문에 iptables를 적정하게 수정하는게 매우 힘들다. 여기서는 iptables 서비스를 중단하고 자동 실행되지 않도록 변경한다.
$ service iptables stop
$ chkconfig --level 2345 iptables off
다른 서버에서 XenServer의 /nas 디렉토리를 NFS로 마운트해본다.
$ mkdir /xenserver-nas
$ mount -t nfs 192.168.0.2:/nas /xenserver-nas
3) samba 서비스를 설정한다.
samba 서비스는 XenServer에 설치되어 있지 않다. XenServer가 인터넷에 연결되어 있다면 yum 을 이용해 설치할 수 있다. 인터넷으로 패키지를 받아올 수 있도록 CentOS-Base.repo 파일의 base 섹션 내 enable을 1로 변경한다.
$ vi /etc/yum.repos.d/CentOS-Base.repo
[base]
...
enable=1
이제 yum을 이용해 samba를 설치하고 자동 실행되도록 구성한다.
$ yum install samba
$ chkconfig --levels 345 smb on
삼바 환경파일을 백업해 놓고 적절하게 수정한다. 여기서는 /nas 디렉토리를 서비스 하도록 구성했다.
$ cp /etc/samba/smb.conf /etc/samba/smb.bak
$ vi /etc/samba/smb.conf
server string = NAS on XenServer
netbios name = XenServer
log file = /var/log/samba/%m.log
security = user
passdb backend = tdbsam
load printers = no
cups options = raw
[nas]
comment = nas
path = /nas
public = yes
writable = yes
printable = no
삼바 서비스를 재시작 한다.
$ service samba restart
NFS를 설정하면서 iptables를 비활성화 시켰지만 여전히 iptables를 사용코자 한다면 iptables 테이블에 samba 서비스용 포트를 허용하도록 다음 2개 라인을 추가한다.
$ vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
윈도우에서 시작 –> 실행으로 다음 명령을 입력하여 정상 연결되는지 확인한다.
\\192.168.0.2\nas
리눅스 시스템에서는 mount 명령으로 연결해본다.
$ mount –t cifs –o user=<username>,password=<yourpass> //192.168.0.2/nas /nas
$ ls –la /nas
관련링크
- http://ifwind.tistory.com/10 1700회 연결
댓글목록
등록된 댓글이 없습니다.