data engineering

LVM (logical volume manager) 기본 세팅..(aws ec2)

qkqhxla1 2020. 6. 18. 22:48

https://youngmind.tistory.com/entry/CentOS-%EA%B0%95%EC%A2%8C-PART-1-8-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-%EA%B4%80%EB%A6%AC-%E3%85%A3%E3%85%8D


의 사진을 가져옴.(문제있을시 글 비공개로 돌리겠습니다!


일단 LVM에 관해 적는이유는 aws ec2에 새로 몽고디비를 설치하려고 하는데 환경에 문제가 있어서, aws에서 도커로 몽고를 띄울수가 없다. 그래서 온프레미스같이, idc에 설치하듯이 서버에 직접 설치를 해야하는데, 이 경우 완전 새로 만들어진 ec2는 말 그대로 우분투에 디스크를 새로 꼽은 상태이다.

그래서 이 디스크들을 어쩌구저쩌구 가공해주고 마운트해줘야 우리가 쓸수 있는 환경이 나온다.(여태까지 이런 작업을 할 일이 없어서 LVM개념도 최근에 알았다. 이런거 해볼일이 얼마나 될지)

그림도 가져왔다. 이런저런 블로그를 찾아봤었지만 여기 그림이 가장 직관적이고 이해하기가 편해서 그림을 가져왔다.


위 그림의 맨 아래 Block Device가 ec2를 처음 만들었을때의 상태이다. 내 ec2의 인스턴스 타입은 i3.4xlarge이고, 작업은 아래에서부터 위로 올라가야 한다.


lsblk를 하면 Block Device의 상태가 보이는데 아래처럼 보인다.

i3.4xlarge가 1.7TB디스크 두개가 붙어있는데 nvme0n1, nvme1n1로 확인됨을 알수 있다.


이후 fdisk /dev/nvme0n1등으로 nvme디스크를 초기화해준다.(근데 aws ec2같은경우 초기화를 안 해줘도 문제없었음.)


그후 pvcreate /dev/nvme0n1,  pvcreate /dev/nvme1n1 명령으로 pv를 만든다.


이후 만들어진 pv들을 vg로 묶어줬다. vgcreate datavg /dev/nvme0n1 /dev/nvme1n1


그리고 만들어진 vg로 lv를 만든다. lvcreate -l +100%FREE -n data datavg (-l +100%FREE는 전체를 모두 사용하도록 하라는 옵션이란다.)



이제 lv까지 만들어졌으니 file system에 마운트를 해주면 된다. 적당한 디렉토리 /data를 만들고 mkdir /data


마운트할 장소를 적기 위해 /etc/fstab를 열어서 맨 끝에 추가해준다.


/dev/datavg/data        /data   파일시스템     옵션 ....


이러면 위에서 만들었던 /dev/datavg/data를 /data에 mount해준다는 의미이다. /etc/fstab에 관해서는

http://blog.naver.com/PostView.nhn?blogId=dudwo567890&logNo=130156449983 여길 참조하자..


이후 /etc/fstab에 추가가 완료되었으면 mount -a로 우리가 만든 볼륨을 마운트한다.


df -h를 입력했을때 아래처럼 잘 되었음을 확인할 수 있다. 1.7T두개가 붙어서 3.5T 1개처럼 사용이 가능하다.


이제 그냥 사용하면 된다.


추가참고 : https://kit2013.tistory.com/199



사실 이것저것 찾아 적었긴 하지만 아직까지 왜 block device에서 pv로 가고 거기서 vg로, lv등 이렇게 복잡한 여러 단계를 거쳐가도록 만들었는지 잘 모르겠다. 당연히 뭔가 이점이 있을텐데 처음 만들어본 초보자 입장에서는 한두단계 정도는 더 줄일수있을것 같은데.. 나중에 더 볼일이 있으면 찾아봐야겠다.


인프라 다루는게 진짜 많이 어려운것 같다.