ESXi 에 가상머신을 하나 생성 ( FreeBSD 64bit 또는 기타 ) 하고

DVD/CD 에 FreeNAS 9.3-Stable.iso 삽입.

 

용량은 어차피 ZFS Pool ( 3TB X 4 ) 를 쓸 것이므로 ESXi 의 기본 데이터스토어(128G SSD)에

8GB 로 작은 하드디스크를 생성한다.

 

FreeNAS 는 Native ZFS 구성이므로 최소 물리메모리 8GB 이상 ( 16GB 추천 ) 잡는다.

설치될 하드디스크는 ESXi 의 가상 머신이고

머신에 PCI-E 슬롯에 장착되어 있는 Areca ARC-1220 Card에 연결된 4개의 3TB 하드디스크 ( ZFS Pool )

을 VT-d 로 Passthough 하여 직결 연결한 상태이다.

ZFS RaidZ-1 을 사용할 것이므로, 여기서는 레이드카드를 단순 S-ATA 확장 슬롯처럼 사용하고 있는 것이다.

 

콘솔화면에서 설치 진행 한다.

설치시 디스크는 ESXi 의 가상디스크인 8GB 하나만 선택해야 한다.

( 패스스루된 도시바 3TB들을 선택하면 데이터 날아가므로 주의 )

 

 

 

 

설치 완료 후 리부팅 하면 IP 세팅을 하는데

1) Configure Network Interfaces 에서

1) em0 을 선택한 후

ip4v 는 192.168.1.X 으로 잡고

4) Default route 설정에서는

 ip4v route 를 192.168.1.1 ( 자신의 게이트웨이 ) 잡아주면 된다.

 

그리고 13) Reboot 하고 웹에서 1에서 설정한 사설 IP로 접근하면 된다. ( 포트포워딩하여 공인IP:포트 로 접근할 수 있게 하였다 )

 

※ 6) DNS Configure 를 해줘야 time 정상설정이 가능하다 ( ex ) 보고서 )


SK
주 : 219.250.36.130
보조 : 210.220.163.82

KT
주 : 168.126.63.1
보조 : 168.126.63.2

LG
주 : 164.124.101.2

보조 : 203.248.252.2




설치 후 위자드 세팅 가볍게 설정해주면 준비가 된 것이다.





 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

[FreeNAS] Boot TIP

Home NAS 구축 2016. 1. 29. 11:06

업데이트 또는 설정 꼬임 등의 문제로 부트시에 표기나 에러가 발생한다면

기존 복구지점이 보통 존재하여, 해당 부트로더 부팅이 가능합니다.

환경설정도 해당 시점으로 돌아가기 때문에 별도의 백업이 필요합니다.

( 저장 위치는 /data/.db 파일들 )

 

 최하단에 있는것이 최근 부팅본이며

그 위로 날짜별로 거슬러 올라가 [Activate] 를 눌러 활성화해준 뒤 리부팅을 하면 됩니다.

(콘솔 부팅시 선택메뉴와 동일 합니다)

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

1. WAN ( 가정 100Mbps Full )

2. Dell Poweredge T20 메인 서버 ( 내부망 1Gbps Full )

E3-1225v3 / 32GB / SSD128GB ( Datastore ) / Toshiba 3TB X 4EA

3. 네트워크 구성

ESXi Hypervisor 6.0.0 (업데이트 예정) - pfsense 와 FreeNAS 는 Datastore에 설치 ( SSD )

pfsense 2.1.5 ( 업데이트 안함 )

FreeNAS 9.3

- ESXi 의 VT-d passthough 기능으로 기존 ZFS Pool ( main ) 을 담고 있는 3TB X 4EA 디스크들을 직결하여 Import

- 기존 iSCSi 에서 금융전용 서버와 해외 VPN / Proxy 로 사용할 서버 2개만 사용. 나머지는 폐기. Jail 로 대체. 

- WAN -> Hypervisor ( 공인 IP ) -> pfsense ( 192.168.1.15 / 투명모드 ) -> LAN단 ( FreeNAS 192.168.1.20 )

 

[ IP 할당 ( 포트포워딩 ) ]

T20 Hypervisor ( WAN 에서 들어온 공인 IP )

pfsense ( 192.168.1.15 ) - 이하 LAN 단 사설 할당 

FreeNAS ( 192.168.1.20 ) - NAS FTP 개방 ( root 외 일반 FTP 유저는 SSH 로그인 불허 )

 

iSCSi Target ( Zpool 에서 Zvol 로 별도 볼륨화하여 외부 ESXi로 뿌린다 )

- Windows ( 금융전용 서버 50G ) - 192.168.1.21

- Windows ( VPN / Proxy 100G ) - 192.168.1.22

- Windows ( IRC-Bot / 10G ) - 192.168.1.23

- Linux ( WEB/DB 30G ) - 192.168.1.33


- Linux Test #1 ( 192.168.1.25 )

- Linux Test #2 ( 192.168.1.26 )   -- 서버 동기화 테스트 용 ( HA / LB / Rsync 등 )

- Linux Test #3 ( 192.168.1.27 ) -- 지인 연습서버

- Linux Test #4 ( 192.168.1.28 ) -- 지인 연습서버 #2


 

- 여분

Jails ( FreeNAS 커널 내부의 컨테이너 )

- Owncloud ( 192.168.1.30 )

- Plex Media Server ( 192.168.1.31 )

- TorrnetMission ( 192.168.1.32 )

- 여분 

 

[ 관리 ]

iSCSI Target 및 컨테이너는 둘다 ZFS Pool 기반 위에서 생성되므로 FreeNAS 의 [스토리지] 탭 에서 각각의 볼륨 별

Snapshot 이 가능하다.

 

[ 기본 예시도 ]

 

 

 

 

 

 

 

 

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

이제 구성된 CentOS + ZFS RAIDZ1 시스템의 zpool 에서 일정 부분을 iSCSi Target 으로 설정하여,

ESXi 하이퍼바이저 하에서 다른 가상 시스템의 메인 하드디스크 용도로 사용할 것입니다.

방법은 어렵지 않습니다. ZFS 시스템에서 부분적으로 파티션( /~ ) 이 아닌 DISK 장치 ( /dev/~ ) 를 만들고,

그것을 네트워크 Target 으로 삼아, 게시하는 것입니다.


[ 계획도 ]

- SSD 데이터스토어에 설치한 가상 CentOS(20GB) 시스템 메인에서 

외부의 모든 물리 하드디스크를 원시매핑(RDM) 하여, OpenZFS로 디스크 전체 Zpool 을 구성한 상태.

 그 상태에서 외부 가상시스템의 메인 하드디스크로 iSCSi 를 내보내기 위해 Target 을 구성.





 1. iSCSi Target 생성을 위해 Package 를 설치합니다. ( Yum install scsi-target-utils )

 

- 의존성 패키지가 추가로 같이 설치 될 것입니다.

Installed:
  scsi-target-utils.x86_64 0:1.0.24-16.el6

Dependency Installed:
  libibverbs.x86_64 0:1.1.8-3.el6           librdmacm.x86_64 0:1.0.18.1-1.el6
  perl-Config-General.noarch 0:2.52-1.el6   sg3_utils.x86_64 0:1.28-6.el6


 

2. chkconfig | grep tgtd 로 해당 서비스가 정상적으로 올라왔는지 확인 합니다

 

- 보통 모든 init 레벨에서 해제되어 있으므로 chkconfig tgtd on 으로 켜 주도록 합시다.

tgtd            0:해제  1:해제  2:활성  3:활성  4:활성  5:활성  6:해제

그리고 서비스 스타트도 잊지 말아야 합니다. ( 꺼져 있으면 tgtadm 이 실행되지 않습니다 )

# service tgtd start 또는 /etc/init.d/tgtd start

 

3. iSCSi Target Controller와 Name 을 LUN 0 으로 우선 등록해 줍니다.

 

- 네트워크에서 검색될 도메인명과 기본 Lun 을 지정해 주는 단계입니다.

원하는 도메인명(실제 도메인이 아님! 원하는대로) 을 입력하면 됩니다. ( ex : 도메인 : 스토리지 구분 네이밍 )

 

[ 네트워크 상에서 myunginy.iptime.org:storage.win 라는 이름으로 검색할 수 있게 생성 ]

#tgtadm --lld iscsi --op new --mode target --tid 1 -T myunginy.iptime.org:storage.win
정상적으로 생성되었다면 엔터 후 아무 메세지도 나오지 않아야 합니다.

--tid 값은 새 Target 을 만들 때 증가시켜 주면 됩니다.

 

[ 정상적으로 위의 내용이 생성되었는지 확인하기 ]

#tgtadm --lld iscsi --op show --mode target

Target 1: myunginy.iptime.org:storage.win
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
    Account information:
    ACL information:

와 유사하게 나오면 정상적으로 생성이 된 것입니다.

생성만 하였지 실제 DISK 와 매핑시키지 않았기에 용량 정보가 없어야 합니다.

 

4. ZFS 파일시스템에서 50GB 를 DISK Device 로 할당한 후 iSCSi 의 Lun 1 에 매핑시킵니다


정상적인 물리 디스크라면 df -h 에 표시되는 /dev/sda 같은. 원하는 디바이스를 그대로 매핑하면 됩니다만

여기서는 현재 CentOS 에 RDM + RAIDZ 된 Zpool 에서 50GB 만을 논리적으로 장치화하여 매핑할 것입니다.

방법은 간단합니다

 

#1. 파티션이 아닌, 장치를 생성합니다

#zfs create -V 50G main/windows

main 은 zpool 이름이고 그 아래로 windows 라는 disk 를 만들겠다는 의미입니다. 엔터 후에 아무 표시도 되지 않으면 정상.

이것은 파티션이 아닌 장치이므로 마운트를 거치지 않아 df -h 에 바로 보이지 않습니다.

 

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       7.6G  367M  6.9G   6% /
tmpfs           939M  4.0K  939M   1% /dev/shm
/dev/sda1       190M   62M  119M  34% /boot
/dev/sda7       187M  1.6M  176M   1% /home
/dev/sda3       5.7G  1.4G  4.1G  25% /usr
/dev/sda6       1.9G  467M  1.4G  26% /var
main            7.7T  128K  7.7T   1% /main
main/ftp        8.0T  240G  7.7T   3% /main/ftp                               zpool의 범주 ( 생성한 windows 는 보이지 않습니다 )
main/owncloud   7.8T   40G  7.7T   1% /main/owncloud

생성한 장치는 다음 위치에 있습니다.

# cd /dev/zvol/main/windows

해당 /dev/zvol/main/windows 라는 disk 를 iSCSi Target 의 Lun 1 로 매핑하면 됩니다.

 

 

#2. Lun 1 에 매핑

# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/zvol/main/windows
엔터 후 아무 메세지도 나오지 않으면 설정 된 것입니다.

정상적으로 생성되었는지 위에서 사용한 show 명령어를 이용하여 확인합니다.

#tgtadm --lld iscsi --op show --mode target

Target 1: myunginy.iptime.org:storage.win
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 53687 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/zvol/main/windows
            Backing store flags:
    Account information:
    ACL information:

 

네 LUN 1에 아까 zfs create -V 50G 로 생성한 크기만큼 매핑이 되어 있습니다. 경로도 맞군요.

이제 네트워크 게시가 끝난 것입니다. 저번에 물리하드를 가상화에 직접 연결하던 RDM 과 어찌보면 다를 게 없죠? ^^

이제 저걸 외부에서 검색해서 찾아가기만 하면 되는 것입니다.

그러기 위해서는 네트워크의 해당 iSCSi Target PORT 가 열려 있어야 합니다. 보통 디폴트는 3260 포트 입니다.

바인드 해 주어야겠죠? ( 일종의 네트워크 포트 포워딩입니다 )

 

[ 외부 전체에 BIND 하기 ]

#tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
엔터 후 아무 메세지도 나오지 않으면 성립된 것입니다.

말 그대로 target 1 을 ALL 전체 BIND 하겠다는 커맨드입니다.

 

[ BIND 후 포트가 열려 있는지 확인하기 ]

#netstat -atunp | grep 3260
tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      14245/tgtd
tcp        0      0 :::3260                     :::*                        LISTEN      14245/tgtd

 

[ 현재 설정한 내용을 환경파일에 저장하기 ]

#tgt-admin --dump > /etc/tgt/targets.conf

※ 기존에 이미 관련 정보가 있다면 > 말고 >> 로 추가해 주시면 됩니다.

타겟 시스템에서 기본 구성은 끝났습니다. 이젠 ESXi vSphere Client 에서 불러오면 됩니다.

 

5. 하이퍼바이저에서 인식시키기


#1. 관리 Client인 vSphere Client 에서 소프트웨어적인 iSCSi 컨트롤러를 설치 해 줍니다.

[스토리지 어댑터] 탭에서 [추가] 버튼을 누르거나 , 마우스 오른쪽 버튼으로 추가할 수 있습니다.

 




 구성은 모두 디폴트로 세팅 합니다.


#2. 자동으로 iSCSi Target 추가하기

우리는 앞에서 이미 구성을 했으므로, 단순히 찾아만 주면 됩니다. 

추가된 iSCSI 컨트롤러 속성에 가셔서 [동적 구성] 탭에서 CentOS 의 IP 를 추가해 주면 됩니다. 포트는 기본 그대로입니다.




아이피만 입력하고 확인을 누르면, 서버 위치에 저렇게 뜨면 정상입니다.


#3. 확인 후 바깥으로 나오면 iSCSi 컨트롤러에 이제 경로가 추가되어 있습니다.




이제 연결이 완료된 것입니다. 쉽죠?



6. 새 가상 시스템 만들어서 해당 iSCSi Target 의 LUM 1 을 메인 하드디스크로 사용하기

 

네 이 작업을 하려고 기나긴 1~5를 해온 것인데요.

이제 기본적으로 새 가상시스템 설치를 진행하도록 합니다. 

방식은

[표준 설치] 선택 후 하드디스크 [없음] 으로 진행하여, 시스템 생성한 뒤 [편집] 에서 추가하는 방법과

[사용자 지정] 선택 후, 하드디스크 선택에서 [가상 디바이스] 를 선택하는 방법이 있습니다.


그간 비활성화되어 있던 [원시 디바이스] 탭이 활성화되어 있을 것입니다.




나머지는 적당히 디폴트로 진행하셔도 됩니다.


이로써, 별도의 하드디스크를 사용하지 않고, 

CentOS 에서 ZFS 구성한 Zpool 에서 50GB만을 별도로 하드디스크화해서 사용하게 되었습니다!


고생하셨습니다.

다음 게시물은 CentOS 에 네트워크 모니터링 툴 설치 항목입니다. 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,