leejhstory
iSCSI 설명 / 서버 하드 추가 및 클라이언트 마운트 본문
iSCSI
- 컴퓨팅 환경에서 데이터 스토리지 시설을 이어주는 IP 기반의 스토리지 네트워킹 표준
- iSCSI는 IP망을 통해 SCSI 명령을 전달함으로써 인트라넷을 거쳐 데이터 전송을 쉽게 하고 먼 거리에 걸쳐 스토리지를 관리하는데 쓰인다.
- iSCSI는 근거리 통신망과 원거리 통신망, 아니면 인터넷을 통해 데이터를 전송하는데 쓰이며 위치에 영향을 받지 않는 데이터 보관과 복구를 사용 할 수 있게 한다.
- 특수 목적의 케이블링을 요구하는 전통적인 파이퍼 채널과 달리 iSCSI는 기존의 네트워크 인프라를 사용하여 먼 거리에 걸쳐 운영할 수 있다.
3가지 방식이 있다.
1) DAS(Direct-Attached Storage)
- 서버 시스템과 스토리지가 한 공간안에 있는 형태
- 네트워크를 거치지 않고 연결되어 있음
- 디스크 장치들을 HBA(Host Bus Adaptor)를 통해 시스템에 직접 연결
2) NAS(Network-Attached Storage)
- 네트워크를 통해 파일시스템 포맷까지 이루어진 저장장치를 제공 받음
- 특정 어플리케이션을 통해 접근
- 일반적으로 NAS 형태의 파일 서버를 구축한 뒤 웹 브라우저를 통해 접근
3) SAN(Storage Area Network)
- 광케이블 혹은 랜 케이블을 통해 저장 장치만 제공 받음
- 저장 장치를 제공받은 뒤에는 로컬 시스템에서 파일 시스템을 포맷하고 마운트하여 사용
- 충분한 네트워크 대역폭 필요
- 광케이블을 이용한 방식과 랜 케이블을 이용한 방식이 있음
* 광케이블 방식
디스크를 제공받을 때 광케이블을 통해서 제공 받음
광케이블 번용 스위치와 HBA포트 등이 필요 -> 비용 증가
* 랜케이블 방식
디스크를 제공 받을 때 일반 네트워크 통신 장비를 통해 제공 받을 수 있음. 덕분에 비용은 절감
전용 HBA포트 대신 lnitiator 라는 소프트웨어를 설치하여 사용
용어정리
- target : 스토리지를 제공해주는 서버 ( target = server )
- backstores : 스토리지 종류
* block : 디스크를 파티션 한 파티션장치를 의미( 논리 볼륨 가능 )
* fileio : 루트 파일 시스템에서 사용 중인 일부 공간 사용 가능
* pscsi : 물리적인 SCSI 장치
* ramdisk : RAM 공간의 일부 사용
- iscsi
* iqn : target 또는 lnitiator(클라이언트)에 지정된 이름
* tpg : 대상 포털 그룹, lnitiator(클라이언트)가 target에 연결할 수 있도록 하는 설정들의 그룹
● acl : 접근 제한 리스트, 여기에 등록된 lnitiator(클라이언트)만 접근
● lun : backstores 중에 하나와 연결되며 연결되는 순서에 따라 번호가 지정됨. lnitiator는 lun에 접근하여 스토리지를 제공 받음
● Portal : 보통 서버의 IP주소와 3260포트를 의미
- lnitiator : HBA 포트를 대신하는 소프트웨어 ( lnitiator = client라고 생각해도 무방)
:: NFS와는 다르게 서버는 공간만 주고 클라이언트가 ~~을 한다.
Cent_SVR에서
VM -> settings -> add -> hard disk추가
# lsblk // 블럭 장치 목록을 보여주는 리눅스 명령어
# ls /sys/class/scsi_host/ | while read host; do echo "- - -" > /sys/class/scsi_host/$host/scan; done // reboot 없이 새로운 하드디스크 인식시키기
# lsblk // 확인
# yum -y install targetcli
# targetcli // 구성을 하기위한 준비단계 진입
/> ls // 구성도 확인
터미널에서 먼저
# fdisk /dev/sdb
Command (m for help): ?
Command (m for help): n // add a nwe partition
Command (m for help): p // primary
Command (m for help): 1 // 1-4 번까지 만들수 있다.
Command (m for help): 엔터친다 // default 값 설정
Command (m for help): 엔터친다 // 첫번째 파티션에 용량을 다 넣겠다
Command (m for help): w // 나간다
다시 targetcli로 들어간다.
/> ls // 구성도 확인
/> /backstores/block create block1 /dev/sdb1
/> /iscsi create iqn.2017-02.com.example:target // 다 들어올수있다?
Cent_Client에서
# nmcli con show ens33 | grep ip_address에서 아이피 주소확인
Cent_SVR에서
# targetcli
/> ls 확인
/> /iscsi/iqn.2017-02.com.example:target/tpg1/acls create iqn.2017-02.com.example:initiator // ACLs에 iqn. 1추가
/> /iscsi/iqn.2017-02.com.example:target/tpg1/luns create /backstores/block/block1 // luns에 lun0 추가
ip를 지정할 것이다.
먼저 portals에 들어있는 0.0.0.0 3260을 지운다
/> /iscsi/iqn.2017-02.com.example:target/tpg1/portals/ delete 0.0.0.0 3260
그다음 클라이언트의 주소를 추가한다.
/> /iscsi/iqn.2017-02.com.example:target/tpg1/portals/ create 192.168.164.129 3260
위 사진에서 보면 block에 block1으로 20GB를 추가한 것과 acls과 luns(block1연결)와 portals 아래에 추가한 것을 볼 수 있다.
systemctl enable target
systemctl start target
다음 방화벽 3260을 열어준다.
firewall-cmd --permanent --add-port=3260/tcp
(혹시 안될 경우 : systemctl start firewalld 를 입력한다.)
firewall-cmd --reload
firewall-cmd --list-all
Cent_Client에서
# yum list iscsi-initiator-utils (iscsi-initiator-utils.i686 설치 확인을 한다.)
# vi /etc/iscsi/initiatorname.iscsi 에서
InitiatorName=iqn.2017-02.com.example:initiator
(줄 친 부분을 서버의 targetcliacl의 iqn을 복사하여 수정해 준다.)
# systemctl restart iscsi
(# systemctl restart iscsid 정확하지않아서 d붙인것을 쳤다.)
# lsblk
현재 네트워크 연결된 것이 없는 상태이다.
# iscsiadm -m discovery -t st -p 192.168.164.128 -l
(-l은 로그인, discovery 대신에 node를 넣어도 된다.)
lsblk를 치면 sdb가 붙은 것을 볼수 있다.
# fdisk /dev/sdb // 위에했던 작업 그대로
Command (m for help): n // add a nwe partition
Command (m for help): p // primary
Command (m for help): 1 // 1-4 번까지 만들수 있다.
Command (m for help): 엔터친다 // default 값 설정
Command (m for help): 엔터친다 // 첫번째 파티션에 용량을 다 넣겠다
Command (m for help): w // 나간다
# mkfs.xfs /dev/sdb1 //원격에 있는 디스클 내 디스크처럼 인식시킨다.
# lsblk -f /dev/sdb1 // 마운트 포맷
오토마운트 fstab 에 옵션을 추가해서 부팅이 문제 없이 되도록 하기
나는 정확하게 모르겠어서 일단
192.168.164.128:3260 / nfs defaults 0 0
으로 하고 mount -a 후 reboot 했다.
'운영체제 및 네트워크 > 리눅스' 카테고리의 다른 글
Introduce to Systemd (0) | 2017.02.24 |
---|---|
리눅스 DNS 마스터 / 슬레이브 (0) | 2017.02.23 |
NFS(network file system)에서 mount 하기 (0) | 2017.02.21 |
VNC-Viewer 이용하기 (리눅스 원격제어) (0) | 2017.02.20 |
sever->client 파일보내기 및 가져오기 (0) | 2017.02.20 |
Comments