profile image

L o a d i n g . . .

  이번 ESXi 강의 내용은 정말 특이합니다. 말 그대로 외장 USB SSD, HDD 또는 메모리를 데이터스토어(DataStore)로 사용하는 방법입니다. 이런 기능이 어떤 상황에서 필요하냐구요? 

왜죠? 어떠한 상황에서 외장 USB 드라이브를 데이터스토어로 사용하나요?

  HPE Microserver Gen10 Plus를 구입하기 전, 제가 구상한 구성 계획은 다음과 같았습니다.

  • 내부 3.5인치 드라이브 4개 슬롯엔 '스토리지용 8TB x 3개(RAID 5) 및 12TB 백업용 하드디스크 1개'를 장착한다.
  • OS는 ESXi 7 또는 ESXi 6.7 U3를 사용한다.
  • PCIe 확장 슬롯엔 외장 그래픽카드를 설치할 수도 있으니 비워둔다.
  • ESXi의 데이터스토어(DataStore)는 집에서 뒹굴고 있던 삼성 T5 500GB 외장 SSD를 사용한다.

  마지막의 '삼성 T5 500GB 외장 SSD'를 데이터스토어로 사용하기로 한건 아래의 링크를 발견했고, 성공 가능성이 있었기 때문입니다. 이 내용의 근본적인 출처와 같습니다. (iamjoost.com/technical/usb-drive-as-datastore-on-esxi-6-0/)

 

USB Drive as Datastore on ESXi 6.0 - My Personal Blog

For my physical security I got a small PC with ESXi running on it. Now I...

iamjoost.com

  외장 SSD 500GB를 데이터스토어로 사용하면, HPE Microserver Gen10 Plus에 주렁주렁 달리는 장치도 극히 적어지고 매우 깔끔한 구성이 가능합니다. 그래서 작업을 시작해보도록 했습니다.

*주의* - ESXi의 USB 컨트롤러가 비활성화 됩니다.

  뭔소리냐면... ESXi의 각 VM마다 USB 장치들을 연결하는 경우가 있을 것입니다. 예를들면, Xpenology VM에 UPS를 연결시킨다거나 윈도우 또는 리눅스 서버에 USB 외장 드라이브를 연결하는 경우가 있겠죠. 본 작업을 진행하면 USB 컨트롤러가 비활성화 됩니다. 데이터스토어용으로 변환한 USB 외장 드라이브 빼고 인식이 안됩니다. 따라서 각 VM에 USB 장치들을 연결하거나 활성화 할 수 없습니다. 이점 참고하신 후 아래 내용대로 진행하시면 됩니다.

  저는 이 문제 때문에 외장 SSD를 데이터스토어로 사용하는 것을 포기했습니다. USB 외장하드와 UPS를 Xpenology에 연결해야 했는데, 연결을 시킬 수 없으니 사용 자체를 할 수 없었습니다.

작업 준비 - SSH 접속하기

  먼저 SSH 기능을 활성화합니다. PuTTY를 사용해서 접속했습니다. 작업 당시 ESXi 환경은 7.0.0이었는데, 6.7과 아주 유사하므로, 6.7 사용자분들도 똑같이 따라하시면 됩니다.

외장 USB 드라이브의 "장치 주소" 확인하기

  외장 USB 드라이브를 ESXi에 인식시키면 '스토리지'의 '디바이스' 탭에서 인식된 것을 확인할 수 있습니다. 제가 연결한 삼성 T5 500GB 외장 SSD의 장치 주소는 "mpx.vmhba33:C0:T0:L0" 이며, 줄여서 "mpx.vmhba33" 입니다.

USB Pass Through(패스 쓰루) 기능 멈추기

  SSH에서 "ls /dev/disks"를 입력합니다. 현재 장착된 4개의 하드디스크와 ESXi가 설치되어 있는 USB 메모리(mpx.vmhba32)가 보입니다. 그런데 T5 500GB SSD(mpx.vmhba33)은 보이지 않습니다. USB Pass Through 기능을 중지하는 작업이 필요합니다.

  다음과 같이 입력하세요. USB Pass Through 기능이 중단됩니다.

[root@localhost:~] /etc/init.d/usbarbitrator stop
[root@localhost:~] chkconfig usbarbitrator off

  그리고 다시 "ls /dev/disks"를 입력하면 "mpx.vmhba33" 장치가 보이게 됩니다.

USB 외장 드라이브를 초기화 하기

  다음과 같이 입력합니다.

[root@localhost:~] partedUtil mklabel /dev/disks/외장 USB 드라이브의 장치 주소\:C0\:T0\:L0 gpt
[root@localhost:~] partedUtil getptbl /dev/disks/외장 USB 드라이브의 장치 주소\:C0\:T0\:L0

  저의 경우는 아래와 같은 형태가 됩니다.

[root@localhost:~] partedUtil mklabel /dev/disks/mpx.vmhba33\:C0\:T0\:L0 gpt
[root@localhost:~] partedUtil getptbl /dev/disks/mpx.vmhba33\:C0\:T0\:L0

  *mpx.vmhba33은 현재 작업 중인 PC에서 인식된 외장 USB 드라이브의 장치 주소로 변경해서 입력하세요.
  * '/'(슬래시) 기호는 키보드 우측 쉬프트 키와 점 사이에 있는 물음표 키 입니다.
  *'\'(역슬래시) 기호는 키보드 상단 백스페이스 키와 엔터 키 사이에 있는 키 입니다.

  입력하고나면 어떤 값이 보일 것입니다. 사진의 주황색 네모의 위치에 있는 숫자를 확인하세요.

  계산기를 실행한 후 아래와 같이 계산을 진행합니다. 주황색 네모에 있는 값을 순서대로 "A", "B""C" 으로 표기합니다.

  • A(60,801) x B(255) x C(63) = 976,768,065
  • 976,768,065 - 1 = 976,768,064

  최종 계산 결과는 976,768,064 입니다. SSH에서 다음과 같이 입력합니다.

[root@localhost:~] partedUtil setptbl /dev/disks/'외장 USB 드라이브의 장치 주소'\:C0\:T0\:L0 gpt "1 2048 '계산 결과 값' AA31E02A400F11DB9590000C2911D1B8 0"

  저의 경우는 아래와 같은 형태가 됩니다.

[root@localhost:~] partedUtil setptbl /dev/disks/mpx.vmhba33\:C0\:T0\:L0 gpt "1 2048 976768064 AA31E02A400F11DB9590000C2911D1B8 0"

  입력 후 별다른 문제가 없으면 파티션 테이블 종류, 구성 형태 등등을 보여줍니다.

외장 USB 드라이브를 데이터스토어 형태로 초기화 하기

  거의 다 마무리 되었습니다. 외장 USB 드라이브를 ESXi에서 사용하는 파일시스템인 VMFS로 초기화를 할 것입니다. 다음과 같이 입력합니다.

[root@localhost:~] vmkfstools -C vmfs5 -S 'USB 드라이브 이름' /dev/disks/'외장 USB 드라이브의 장치 주소'\:C0\:T0\:L0:1

  저의 경우엔 'USB 드라이브 이름'은 'USBDrive'으로, '외장 USB 드라이브의 장치 주소'는 'mpx.vmhba33' 이므로 아래와 같은 형태가 됩니다.

[root@localhost:~] vmkfstools -C vmfs5 -S USBDrive /dev/disks/mpx.vmhba33\:C0\:T0\:L0:1

  ESXi 데이터스토어로 사용하기 위한 파티션 생성이 완료되었습니다. 위 옵션 값 중에서 vmfs5를 사용했는데, ESXi 6 버전 이상에서 사용할 경우는 vmfs6을 사용해도 됩니다.

작업 결과 확인하기

  USB 외장 드라이브가 '스토리지'의 '데이터스토어'에 정상적으로 표시되고 있습니다.

  데이터스토어 브라우저도 정상 이용 가능합니다. VM 생성할때 데이터들을 여기에 저장하도록 하면 됩니다.

마무리...

  이렇게 작업까지만 해보고 나서 실제로 사용하지는 않습니다. 초반에 설명한대로, USB 컨트롤러가 정지되기 때문에 USB 장치들을 VM에서 사용할 수 없기 때문입니다. 위 방법이 꼭 필요하신 분들에게 도움이 되었으면 좋겠습니다. 감사합니다. :)

[Need a translation?]

English Korean Japanese Chinese (Simplified) Chinese (Traditional) French German Russian Spanish Ukrainian


복사했습니다!