본문 바로가기

Linux

08. CentOS7 : Disk관리/Partitioning/LVM

1. Storage 종류

크게 연결방식 3가지로 나뉨


1.1 DAS(Direct Attach Storage)

  • IDE, SCSI, SATA
  • 원격지 설치 불가능, 물리적인 Machine 내장 혹은 최대 1M 정도를 넘지 않는 곳에 설치
  • 장점
    • 안정적이며 속도가 빠르며 안정적
    • 비용이 저렴하다.
  • 단점
    • 물리적인 연결 매체의 최대 유효거리를 넘지 못한다.
    • 파일 시스템 공유는 불가능하다.

1.2. NAS(Network Area Storage)

  • 통상적으로 Network 환경 내에 구성
  • 속도는 100Mbps~1Gbps
  • NFS(Network File System)
  • 장점
    • 원격지 설치 가능
    • 저렴하며 구성이 쉽다.
    • 파일시스템 공유 가능
  • 단점
    • 네트워크에 병목이 생기면 속도 저하 발생
    • 사용자가 늘어나도 속도 저하 발생

 

1.3. SAN(Storage Area Network)

  • Storage 환경 내에 구성한 네트워크
  • Fiber Channel 구성됨.
  • Storage용 전용 Switch, HBA(Server) 카드로 구성
  • 속도는 통상 16Gbps
  • 장점
    • 원격지 설치 가능
    • 파일시스템 공유 가능
  • 단점
    • 가격이 매우 비싸다.

 


 

2. Storage 저장 방식

2.1. Block Storage (AWS EBS : Elastic Block Storage, 단 OS가 설치된 DISK는 이동 불가)

  • 실제 물리적으로 Block 형태 ( ex) USB, Harddisk )
  • 실제 Machine에서 다른 Machine으로 물리적 이동 가능
  • Cloud & Virtualization에서도 VM간 이동 가능
  • Block 단위로 저장됨.

2.2. Object Storage (AWS S3 : Simple Storage Service)

  • 개별 파일 형태로 저장
  • 개별 파일마다 URL이 부여됨. 이를 Rest API라 부른다.
  • URL을 이용하여 파일을 이용(파일며이 아닌 URL을 이용함에 주의)

 


3. VMware Workstation에서의 Block Storage

3.1. 실제 Linux Machine과 동일하게 동작

 

3.2. SDA 분석

  • SD : scsi or sata 디스크를 의미함
    • 참고 -> HD : IDE 방식의 디스크 의미, 이제는 거의 찾아볼 수 없음
  • A : 물리적으로 첫 번째 디스크를 의미
  • 1 : 첫 번째 파티션을 의미

 

3.3. 물리적으로 디스크가 3개 있는 경우는 파티션 작업 이전

  • SDA, SDB, SDC

 

3.4. 첫 번쨰 디스크를 3개로 파티션을 나눈 경우

  • SDA1, SDA2, SDA3

 


 

4. Linux에서 디스크 사용을 위해 반드시 거쳐야할 3단계

4.1. Partition -> File System -> 드라이브명 할당

 

4.2. Partition -> File System -> Mount

  • partition : 물리적인 디스크를 논리적으로 분할
    • 디스크를 사용하기 위해서는 반드시 1개 이상의 partition을 생성해야 한다.
  • File System : 파일 및 디렉토리를 효율적으로 관리하기 위한 시스템
    • 리눅스 : xfs, ext4, ext3, ext2
      • ext3-4 journaling (저널링: 파일을 삭제할 경우 log 기록을 생성 후 삭제. 해당 log로 파일 복원 가능)
      • ext3의 느린 속도를 개선한 것이 ext4
    • 윈도우 : NTFS, FAT32, FAT16?13?
  • mount : Linux에서는 물리적인 장치를 사용하기 위해서는 반드시 디렉토리와 연결해야 한다. 이를 마운트라고 한다.

 

4.3. CentOS7 VM에 Hard Disk 추가하기

좌) 1, 우) 2

1. VM 세팅 창 오픈

2. Hardwre > Add 버튼 클릭하여 Hard Disk를 선택한다.

 

좌) 3, 우) 4

3. Recommended 선택

4. 디스크를 새로 생성하므로 Create a new virtual disk 선택

 

좌) 5, 우) 6

5. 디스크 사이즈 선택 후 Single file 로 선택한다.

6. 파일명 확인 후 Finish

7

7. 추가된 Hard Disk 확인 후 OK 버튼 눌러 추가를 마친다.

 


 

4.4. Partition -> File System -> Mount 실습해보기

 

※ 하드 디스크 정상적으로 추가됐는지 확인

 

※ sdb, sdc 디스크 사용을 위해 파티셔닝

  • n: 파티션 생성, p: 파티션 설정 출력하여 확인, w: 파티션 설정 저장 후 fdisk 종료

 

 파티셔닝 확인 (lsblk, cat /proc/partitions, fdisk -l)

 

※ 파일 시스템 생성

  • 파일 시스템 종류 : xfs, ext3, ext4 등 (xfs, ext4가 많이 쓰임, 리눅스 기본 값은 xfs)
  • 명령어 : mkfs -t [파일시스템종류] [장치명]
  •            mkfs.[파일시스템종류] [장치명]

 

※ mount. sda에 있는 /test1 디렉토리를 sdb1 장치와 연결

  • 장치 사용을 위해서는 반드시 디렉토리와의 연결이 필요. 이 작업을 mount라고 한다.
  • 명령어: mount [장치명] [마운트포인트]

 

※ mount 이해해보기

  1. 마운트를 진행하기 전 /test1 디렉토리 아래에 a.txt 파일이 존재하는 것을 확인할 수 있다.
  2. /dev/sdb1 장치를 /test1 디렉토리에 마운트를 한 후에 /test1 디렉토리 내용을 보면 아무것도 존재하지 않는 것을 확인할 수 있다.
  3. 마운트 후에 /test1 디렉토리 아래에 b.txt 파일을 생성한 후 파일이 생성된 것을 확인한다.
  4. umount 명령어로 마운트 해제 후에 다시 /test1 디렉토리를 살펴보면 마운트 전에 생성했던 a.txt 파일만 확인되는 것을 볼 수 있다.

 

※ sdb, sdc 파티션 삭제 (삭제 진행할 경우 안에있는 데이터는 다 삭제됨)

 


 

5. LVM(Logical Volume Manager)

- Linux는 Mount라는 특수한 개념 때문에 디스크 확장 작업의 난이도가 높다. 이런 약점을 극복하고자 디    스크 상위에서 디스크를 관리하는 LVM이라는 논리적인 개념을 도입
- 여러 물리적인 디스크를 하나의 논리적인 디스크로 통합해서 사용이 가능하다.

 

5.1. 용어

PV (Physical Volume)

  • 하드디스크같은 블록 단위로 접근하는 스토리지 

LV (Logical Volume)

  • 사용자가 최종적으로 다루게되는 논리적 스토리지
  • 생성된 LV는 파일 시스템 및 애플리케이션으로 사용됨

VG (Volume Group)

  • PV의 집합으로 LV를 할당할 수 있는 공간
  • VG의 용량 = 장착되어있는 PV의 용량
  • VG에 여유 공간이 있으면 LV는 얼마든지 추가 및 용량 증가가 가능

 

5.2. 관련 명령어

 

fdisk

  • 디스크 파티션 설정 명령어
  • 사용법 : fdisk [option] [디스크]
  • options
    • d : 파티션 삭제
    • n : 새로운 파티션 추가
    • p : 파티션 테이블 출력
    • t : 파티션 시스템 아이디 변경 (LVM=8e)
    • w : 파티션 설정 저장 후 exit
    • q : 파티션 설정 내용 저장하지 않고 종료

lsblk

  • 스토리지 디바이스 정보 출력

pvcreate

  • PV생성
  • 사용법 : pvcreate [디바이스명]

pvremove

  • PV 삭제
  • 사용법 : pvremove [삭제할PV]

pvs

  • PV 정보 출력

pvscan

  • PV의 모든 디스크를 스캔

pvdisplay

  • PV 속성 출력

vgcreate

  • VG 생성. 생성된 PV를 지정한 볼륨그룹에 포함시키면서 생성
  • 사용법 : vgcreate [볼륨그룹명] [디바이스명] [디바이스명]

vgextend

  • 미리 생성된 VG에 PV를 추가할 때 사용
  • 사용법 : vgextend [볼륨그룹명] [추가할PV명]

vgremove

  • VG 제거
  • 사용법 : vgremove [볼륨그룹명]

vgscan

  • 디스크에 있는 VG를 검색하여 /etc/lvmtab 파일을 생성

vgdisplay

  • VG의 속성과 정보 출력
  • 사용법 : vgdisplay [option] [볼륨그룹명]

lvcreate

  • 볼륨그룹 안에 LV를 생성
  • 사용법 : lvcreate [option] [볼륨그룹명]

lvextend

  • LV의 용량을 확장하는 명령어
  • 사용법 : lvextend [option] [볼륨그룹명] [LV명]

lvremove

  • LV 제거

lvscan

  • 디스크에 있는 LV를 찾아준다.

lvdisplay

  • LV 정보 출력

 

5.3. LVM 구성해보기

 

※ sdb 장치 LVM으로 파티셔닝

 

※ /dev/sdb1 PV 생성 후 확인 (10G 확인)

 

※ VG 생성 후 확인

  • LV에 아직 할당되지 않았기 때문에 Allocation Size = 0

 

※ LV 생성 후 확인

  • LV mh1, mh2, mh3 를 3G로 생성한다.

 

※ 파일 시스템 생성 후 확인

  • mh1, mh2 는 ext4, mh3는 xfs로 파일시스템을 생성한다.

 

※ 생성한 LV 마운트하기

  • 생성한 mh1, mh2, mh3를 각 /lv1, /lv2, /lv3에 마운트한다.

 

※ 확인하기

 


 

5.4. 생성한 LV에 size 1G씩 추가

 

  1. 생성한 3개의 LV에 1G씩 추가로 할당한다.
  2. 위에서 10G 장치를 3개의 LV에 3G씩 할당했으므로, 현재 1G의 여유 용량밖에 없는 상태. 따라서 디스크 추가가 필요하다.
  3. sdc(5G) 디스크를 VG에 추가한 후 생성한 3개의 LV에 1G씩 추가로 할당한다.

 

※ sdc 장치 LVM으로 파티셔닝

 

※ sdc1 파티션을 PV로 생성

 

※ 생성한 PV를 mh 볼륨그룹에 추가한다.

  • PV가 mh 볼륨그룹에 추가되었으며, mh 볼륨그룹의 Free Size가 5G 추가된 것을 확인할 수 있다.

 

※ 3개의 LV에 1G씩 용량 추가

  • lvextend 명령어로 mh1에 1G 할당한 후 vg를 확인해보면 AllocationSize가 1G 늘어났으며, FreeSize가 1G 줄어든 것을 확인할 수 있다.

 

※ VG 용량 및 LV 용량 확인

  • mh1, mh2, mh3에 각각 1G씩 할당된 것을 확인할 수 있다.

 

※ 실제 용량 확인

  • df 명령어로 실제 용량을 확인해보면 아직 할당되지 않은 것을 확인할 수 있다.
  • ext4의 경우 resize2fs, xfs의 경우 xfs_growfs 명령어를 사용하여 리사이즈 해준다.
  • 다시 df 명령어를 사용하여 용량을 확인해보면 정상적으로 할당된 것을 볼 수 있다.

 


 

5.5. LVM 초기화

 

※ 마운트 해제

 

※ LV 삭제

  • LV를 삭제하면 삭제된 용량만큼 VG에 반환되는 것을 확인할 수 있다.

 

※ VG 삭제

 

※ PV 삭제

 

※ 파티션 삭제

 


 

Reference.

https://tech.cloud.nongshim.co.kr/2018/11/23/lvmlogical-volume-manager-1-%EA%B0%9C%EB%85%90/

 

[소개] LVM(Logical Volume Manager) - 개념

이번에는 EC2 의 EBS 저장 장치를 효율적으로 사용하기 위한 LVM에 대하여 알아보겠습니다. 먼저 LVM 을 한줄로 설명하자면, " Logical Volume을 효율적이고 유연하게 관리하기 위한 커널의 한 부분이자

tech.cloud.nongshim.co.kr

https://3sikkim.tistory.com/7

 

[RHEL] LVM 명령어

LVM command pvcreate 설명 물리적 볼륨(PV:Physical Volume)을 생성하는 명령어이다. fdisk를 이용하여 파티션을 분할하고 LVM 속성으로 지정한 뒤에 해당 파티션을 PV로 만들 때 사용하는 명령이다. 사용법 pv

3sikkim.tistory.com

https://lifegoesonme.tistory.com/451