CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·MaClien ·일본산당 ·방탄소년당 ·개발한당 ·자전거당 ·안드로메당 ·나스당 ·이륜차당 ·소셜게임한당 ·소시당 ·물고기당 ·골프당 ·클다방 ·덕질한당 ·바다건너당 ·요리한당 ·스팀한당 ·AI그림당 ·가상화폐당 ·노젓는당 ·패스오브엑자일당 ·AI당 ·WOW당 ·창업한당 ·키보드당 ·테스트당 ·육아당 ·여행을떠난당 ·콘솔한당 ·갖고다닌당 ·PC튜닝한당 ·3D메이킹 ·X세대당 ·ADHD당 ·날아간당 ·사과시계당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·디아블로당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·이브한당 ·패셔니앙 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·걸그룹당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·IoT당 ·KARA당 ·꼬들한당 ·어학당 ·가죽당 ·레고당 ·리눅서당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·찰칵찍당 ·그림그린당 ·소풍간당 ·심는당 ·라즈베리파이당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·파도탄당 ·퐁당퐁당 ·테니스친당 ·빨콩이당 ·공대시계당 ·터치패드당 ·트윗당 ·VR당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

나스당

강좌 Proxmox SSD/하드 마운트 총 정리 15

2018-03-02 22:36:47 123.♡.255.31
voldmolt

개인 블로그에서 먼저 작성된 글이라 경어체가 아닌 점 양해 부탁드립니다. 내용의 차이는 없습니다.


-------------------------------------------------------------------------------------------------------------------



LXC 컨테이너를 쓰든, VM을 쓰든 Proxmox에서 다른 하드를 마운트 시켜야 할 일이 있다. 주로 쓰는 방법이 몇가지 있다.

  1. LXC 컨테이너에 하드 마운트
  2. LXC 컨테이너에서 cifs 마운트
  3. LXC/VM 자체를 다른 하드에 설치
  4. VM에서 하드 공간 마운트
  5. VM에 하드 패스스루
  6. VM에서 cifs/nfs 마운트


1. LXC 컨테이너에 하드 마운트

Bindmount를 이용한다.
우선 마운트 시키고자 하는 폴더가 호스트의 /mnt/bindmounts/test 라고 치자.
컨테이너 내부에서 이 폴더를 /media/test 라는 폴더에 마운트 시키는 법은

vim /etc/pve/lxc/(컨테이너번호).conf

으로 컨테이너 conf 파일에 들어가서 끝에 다음과 같이 추가하면 된다.

mp0: /mnt/bindmounts/test,mp=/media/test

원하는게 폴더 하나 이상일 경우 mp1, mp2식으로 쭉 동일한 방법으로 진행해주면 된다.

컨테이너 내부에 미리 /media/test 폴더를 만들어 줄 필요는 없지만 호스트에 /mnt/bindmounts/test 폴더가 없을 시 컨테이너가 실행되지 않으므로 주의.

Unprivileged 컨테이너에선 이렇게 마운트시킬 경우 기본적으로 읽기밖에 할 수 없다. 호스트에서 폴더를 777 따위로 만들어주지 않으면 쓰기는 불가. 이런 식으로 하드 접근과 쓰기를 해야한다면 컨테이너는 privileged로 하는게 좋다.


2. LXC 컨테이너에서 cifs 마운트

그냥 컨테이너 내부에서 cifs-utils를 깔고 /etc/fstab을 수정하는 방법으론 안되고,

vim /etc/apparmor.d/lxc/lxc-default

으로 lxc 관련 앱아머에

allow mount fstype=cifs,

를 추가해 준 후 상기된 방법으로 cifs-utils 깔고 fstab 수정해주면 마운트 가능.


3. LXC/VM 자체를 다른 하드에 설치

ESXi의 개념으로 본다면 다른 데이터스토어를 추가해 거기에 컨테이너든 VM이든 설치한다고 보면 되겠다. 우선 Thin-lvm 설정을 해줘야한다.

fdisk -l

로 원하는 하드가 /dev/sdxx 어디에 마운트되었는지 확인 후,

pvcreate /dev/sdxx

로 physical volume을 설정해준다.

pvs

를 해보면 두개가 나올 것이다. 원래 있던 PV와 지금 생성한 PV.

vgcreate (VG이름) /dev/sdxx

로 volume group을 설정해준다. VG 이름은 pve만 아니면 된다. 원래 있는 vg 이름이 pve라서 그건 안된다. 마찬가지로

vgs

를 쓰면 원래 있던 pve와 방금 설정한 vg가 떠야 정상. 이제 Thin-lvm을 만들면 된다.

lvcreate -L (원하는 용량) --thinpool --poolmetadatasize (메타데이터 용량) (lv이름) (vg이름)

이게 가장 뭐가 많은데... 하나씩 살펴보자. 원하는 용량 부분이 500기가라면 500G 가 될 것이고, 지정하지 않고 하드 전체를 사용하고 싶다면 -l 100%FREE 가 될 것이다. 대문자 L이 소문자 l (엘)로 바뀌었다는걸 잘 확인하자.

메타데이터 용량은 thin-lvm에만 있는 건데, 뭔지 정확히 모르지만 기본값은 이게 충분히 설정되지 않는다. 1테라 하드를 기준으로 대략 10기가 정도 메타데이터 용량을 주니 넉넉했는데, 추후에 바꾸기 정말 어려우니 처음부터 넉넉하게 주는걸 추천한다. 위와 마찬가지로 10G 등으로 넣어주면 된다.

LV이름은 본인이 원하는 것으로 짓고, vg이름은 위에서 지어놓은걸 써주면 된다. 두개가 동일한 이름이어도 상관 없다.

이제 Proxmox Web-UI에 접속해서, 왼편에 Datacenter을 클릭하고 Storage로 간다.



스샷에서 보는 바와 같이 Add - LVM-Thin을 선택하고 방금 만든 lvm을 마운트시켜주면 된다. 그 후에 create VM이나 create CT를 하면 local-lvm을 쓸지 방금 만든 lvm을 쓸지 선택할 수 있다.


4. VM에서 하드 공간 마운트

이건 3번과 같이 lv 설정이 돼있어야 가능하다. VM을 만든 후 VM 메뉴에서 Hardware - Add - Hard Disk를 선택해준다. 다음 스샷과 같다.


여기서 원하는 lv를 선택하고, 디스크 사이즈를 선택해서 마운트하면 된다.



5. VM에 하드 패스스루

패스스루를 하고 VM을 실행시키면 호스트에선 하드를 아예 볼 수 없어지지만, VM의 전원을 끄면 다시 호스트에서 마운트 가능한 점 알아두시길 바란다.

apt update -y ; apt install lshw -y

로 lshw 패키지를 설치해준 후,

lshw -class disk -class storage

커맨드를 입력하면 현재 꽂혀있는 스토리지 정보가 죽 뜬다. 예시를 가지고 하자면,

*-scsi:0
physical id: 1
logical name: scsi1
capabilities: emulated
*-disk
description: ATA Disk
product: ST1000LM035-1RK1
vendor: Seagate
physical id: 0.0.0
bus info: scsi@1:0.0.0
logical name: /dev/sda
version: SBM3
serial: WDE0819J
size: 931GiB (1TB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=44e51f5d


이 하드를 패스스루 하고 싶다고 치자. 여기서 중요한건 serial: WDE0819J 이 부분이다. 원하는 하드의 시리얼 확인 후,

ls -l /dev/disk/by-id | grep (시리얼번호)

를 치면 뭔가 결과가 뜬다. 예를 들어 내 서버에서 ls -l /dev/disk/by-id | grep WDE0819J를 치면 결과는

lrwxrwxrwx 1 root root 9 Feb 28 10:46 ata-ST1000LM035-1RK172_WDE0819J -> ../../sda

이렇게 나오게 되는데 여기서 중요한건 ata-ST1000LM035-1RK172_WDE0819J 이 부분이다. 이건 사람마다 기기마다 다르니 꼭 본인걸로 하시길. 이제 준비는 다 끝났고, 원하는 VM의 전원을 꺼준 후

qm set (VM번호) -virtio2 /dev/disk/by-id/(방금 찾아낸 디스크 이름)

으로 패스스루 해주면 된다. 내 서버의 예를 계속 들고, VM의 번호가 200이라 가정하면,

qm set 200 -virtio2 /dev/disk/by-id/ata-ST1000LM035-1RK172_WDE0819J

이렇게 되는 셈이다. 중간에 -virtio2 부분은 -sata2 -scsi2 등 다른 프로토콜을 쓸 수 있다. 원하는 하드가 하나 이상일 경우 동일한 방법으로 -virtio3, -sata3 등으로 숫자만 올려가며 패스스루 해주면 된다.


6. VM에서 cifs/nfs 마운트

여타 VM과 다르지 않다. 컨테이너와 달리 VM은 fstab 수정만으로 마운트 시키면 된다.

voldmolt 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [15]
콘사인
IP 42.♡.239.133
03-02 2018-03-02 22:48:00
·
기다리고 있던 글인데 빠르고 친절하게 여러가지 케이스에 대해 상세하게 작성해주셔서 감사합니다 ! ^^
한가지 궁금한 점이 있습니다. lxc 컨테이너를 사용해서 웹서버를 운영해도 충분한지요? 충분하다면 리눅스 VM을 설치할 필요는 없어보여서 말입니다 ㅎㅎ..
voldmolt
IP 123.♡.255.31
03-02 2018-03-02 22:51:21
·
Lxc 오버헤드가 거의 없다시피 합니다. 웹서버 뿐만 아니라 다른 것도 컨테이너에서 하셔도 무방합니다. 특수한 경우가 아니면 굳이 proxmox에 리눅스 vm을 올릴 일이 없다고 보이네요.

openvpn 서버나 클라이언트를 컨테이너에서 돌리고 싶을때 conf파일에 한줄 추가시켜줘야 하는 것 빼고는 전혀 컨테이너라서 생기는 문제는 전 없었습니다.
콘사인
IP 42.♡.239.133
03-02 2018-03-02 22:55:32
·
감사합니다!
그럼 VM 말고 컨테이너로 진행해봐야겠습니다.
그리고 추후에 CPU 교체 및 RAM 증설 할 것 같은데, 이 경우에는 Proxmox 에서 자동으로 잡아주는지 궁금합니다 !
voldmolt
IP 123.♡.255.31
03-02 2018-03-02 22:59:02 / 수정일: 2018-03-02 23:03:04
·
네 리눅스 4.13 커널이 지원만 하는거면 중간에 이것저것 바꿔도 상관 없습니다. 메인보드까지 바꿔도 별 상관 없더라구요.
콘사인
IP 42.♡.239.133
03-02 2018-03-02 23:11:32
·
오 좋은 정보입니다 ! ㅋㅋ 감사합니다!
콘사인
IP 42.♡.239.133
03-03 2018-03-03 00:38:35
·
@괴ㅈ님 한가지 더 궁금한 점이 있어서 질문 드려요!
Nginx 리버스 프록시 컨테이너를 따로 두어서 다 연결하는데, 나머지 컨테이너들에도 모두 Nginx + PHP-FPM으로 각자 웹서버를 운영하는 상태여야되는건가요?
voldmolt
IP 123.♡.255.31
03-03 2018-03-03 00:43:07 / 수정일: 2018-03-03 00:43:14
·
어떤 웹서비스를 말씀하시는건지 잘 감이 안옵니다. 저도 nginx 리버스 프록시 컨테이너를 따로 두는데 워드프레스 컨테이너에서 아파치가 돌아가는 중이지요. 리버스 프록시 컨테이너는 그냥 중계와 ssl 인증서 갱신, ddns 업데이트만 해주구요.
콘사인
IP 42.♡.239.133
03-03 2018-03-03 01:21:01
·
예를들면 Wordpress, phpmyadmin 을 운영한다하면 1개의 컨테이너에 모두 운영을 하시는지
따로 하나하나씩 컨테이너를 만드셔서 각각 컨테이너에 Apache가 설정이 되어있는건가요?
voldmolt
IP 123.♡.255.31
03-03 2018-03-03 01:32:42 / 수정일: 2018-03-03 01:35:39
·
아아아 어떤걸 말씀하시는지 대략 알꺼 같습니다. 결국 개인의 선택에 달린거 같아요.
조금 다른 예를 들어보고자 합니다. 워드프레스와 nextcloud를 깐다고 가정을 해보죠. 둘 다 아파치(nginx), php, mysql(mariadb)가 필요할겁니다. 도커에선 아마 아파치, 워드프레스, php, 넥스트클라우드, mysql 컨테이너를 따로 설치하시고 서로 적절히 연결하셔서 사용하시겠죠? (제가 도커에 대해 거의 무지해서 정확하지 않을수도 있겠습니다.) lxc도 당연히 그렇게 따로 컨테이너를 나누고 적절히 연결해서 사용 가능합니다.
헌데, 저는 워드프레스 컨테이너와 넥스트클라우드 컨테이너 두개로만 나누고 아파치, php, mysql을 중복해서 깔아서 씁니다. 각각 컨테이너가 독립적으로 움직이는 환경이죠. 기본적으로 하나의 컨테이너를 켜고 끔이 다른 서비스에 지장을 주지 않는 쪽을 선호합니다. 보통 어떻게 쓰시는진 제가 알 수 없지만요.
다시 리버스 프록시 얘기로 돌아가서, 위에 적은 바와 비슷한 취지로 저는 각각 컨테이너에 아파치나 nginx가 따로 돌아가게 설정하고 쓰는 중입니다. 물론 도커 방식으로 쓰셔도 전혀 상관없습니다.
콘사인
IP 42.♡.239.133
03-03 2018-03-03 10:33:46 / 수정일: 2018-03-03 10:47:10
·
네! 답변 감사합니다.
제가 궁금한 부분을 정확히 집어주셨네요 ㅎㅎ !
지금 현재 진행하고 있는데, Route Table을 따로 만들어주어야하는지.. 192.168.0.100 -> 192.168.0.101 간의 Ping 조차 통하질 않네요

++ 자답입니다!
Proxmox의 /etc/network/interfaces 에
#subnet
up ip route add 192.168.0.100/32 dev vmbr0
up ip route add 192.168.0.101/32 dev vmbr0

와 같이 추가해주니 서로 통신이 됩니다 !
Riverflow
IP 115.♡.103.206
03-02 2018-03-02 23:13:57 / 수정일: 2018-03-02 23:14:22
·
처음 입문하시는 분들께는 오아시스 같은 글이군요.. 정보 감사합니다 ^^
voldmolt
IP 123.♡.255.31
03-03 2018-03-03 02:35:19
·
매번 변변치 않은 강좌글에 감사하다고 달아주셔서 저 또한 매우 감사합니다. 꾸벅
무카파
IP 118.♡.99.178
03-03 2018-03-03 14:08:53 / 수정일: 2018-03-03 14:09:15
·
proxmox가 웹기반으로 작동하는 하이퍼바이저 맞나요?
웹에서 윈도우 돌리면 어떤가요? 쾌적하게 잘 돌아가나요?
voldmolt
IP 123.♡.255.31
03-03 2018-03-03 14:29:47
·
웹기반은 아니고 웹ui가 있습니다. 윈도우는 여타 kvm 기반과 똑같이 돌아갑니다. 사양에 따라 쾌적함은 다르죠 뭐...ㅋㅋ
이치로
IP 137.♡.206.137
03-03 2018-03-03 16:10:45
·
흥미롭게 봤습니다.
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.