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?
- 리눅스 : xfs, ext4, ext3, ext2
- mount : Linux에서는 물리적인 장치를 사용하기 위해서는 반드시 디렉토리와 연결해야 한다. 이를 마운트라고 한다.
4.3. CentOS7 VM에 Hard Disk 추가하기


1. VM 세팅 창 오픈
2. Hardwre > Add 버튼 클릭하여 Hard Disk를 선택한다.


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


5. 디스크 사이즈 선택 후 Single file 로 선택한다.
6. 파일명 확인 후 Finish

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 이해해보기

- 마운트를 진행하기 전 /test1 디렉토리 아래에 a.txt 파일이 존재하는 것을 확인할 수 있다.
- /dev/sdb1 장치를 /test1 디렉토리에 마운트를 한 후에 /test1 디렉토리 내용을 보면 아무것도 존재하지 않는 것을 확인할 수 있다.
- 마운트 후에 /test1 디렉토리 아래에 b.txt 파일을 생성한 후 파일이 생성된 것을 확인한다.
- 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씩 추가
- 생성한 3개의 LV에 1G씩 추가로 할당한다.
- 위에서 10G 장치를 3개의 LV에 3G씩 할당했으므로, 현재 1G의 여유 용량밖에 없는 상태. 따라서 디스크 추가가 필요하다.
- 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
[RHEL] LVM 명령어
LVM command pvcreate 설명 물리적 볼륨(PV:Physical Volume)을 생성하는 명령어이다. fdisk를 이용하여 파티션을 분할하고 LVM 속성으로 지정한 뒤에 해당 파티션을 PV로 만들 때 사용하는 명령이다. 사용법 pv
3sikkim.tistory.com
'Linux' 카테고리의 다른 글
10. CentOS7 : Quota (0) | 2022.03.08 |
---|---|
09. CentOS7 - ACL(Access Control List) (0) | 2022.03.01 |
07. CentOS7 - 계정 생성 및 패스워드 관련 파일과 명령어 (0) | 2022.03.01 |
06. CentOS7 명령어 - useradd, usermod, userdel, group (0) | 2022.02.22 |
05. CentOS7 명령어 - vi 편집기 (0) | 2022.02.22 |