2025. 4. 28. 00:14ㆍDevelopers 공간 [Shorts]/Software Basic
<분류>
A. 수단
- OS/Platform/Tool : Linux, Kubernetes(k8s), Docker, AWS
- Package Manager : node.js, yarn, brew,
- Compiler/Transpillar : React, Nvcc, gcc/g++, Babel, Flutter
- Module Bundler : React, Webpack, Parcel
B. 언어
- C/C++, python, Javacsript, Typescript, Go-Lang, CUDA, Dart, HTML/CSS
C. 라이브러리 및 프레임워크 및 SDK
- OpenCV, OpenCL, FastAPI, PyTorch, Tensorflow, Nsight
1. What? (현상)
이번 글에서는 LVM(Logical Volume Manager)에 대해 설명하려고 합니다.
리눅스에서 여러개의 Disk들을 모아서 하나의 Disk처럼 mount하고 사용할 때 사용하는 프레임워크입니다.
LVM을 사용하기 위해 아래의 개념 몇가지를 인지해야합니다.
- 물리적 볼륨(PV, Physical Volume) : 실제 물리 디스크
- 볼륨 그룹(VG, Volume Group) : 여러개의 물리적 볼륨을 하나로 묶어 놓은 그룹
- 논리적 볼륨(LG, Logical Volume) : 볼륨 그룹을 원하는 형태로 다시 분리해서 묶은 논리적 그룹
그럼 과정을 살펴보겠습니다.
2. Why? (원인)
- X
3. How? (해결책)
먼저 lvm을 설치해줍니다.
sudo apt-get install lvm2
1. 현재 서버에 디스크들이 어떤 것들이 있는지 확인
아래와 같은 명령어를 통해 어떤 disk를 묶어야 할지 먼저 디스크 목록을 살펴봅니다.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232.9G 0 disk
sdb 8:16 0 931.5G 0 disk
sdc 8:16 0 931.5G 0 disk
sdd 8:16 0 931.5G 0 disk
sde 8:16 0 931.5G 0 disk
----------------------------------------------------
<disk 조회하는 다른 명령어들>
아래와 같은 명령어로 disk들을 살펴볼 수 있습니다.
ls /dev/
sudo fdisk -l
lsblk
이외에 UUID까지를 확인하고 싶으면 아래와 같은 명령어로 확인할 수 있습니다.
** UUID(Universally Unique IDentifier) : 디스크, 파티션, 파일 시스템, LVM 등을 고유하게 식별하기 위해 사용하는 식별자
sudo blkid
ls -l /dev/disk/UUID
ls -l /dev/disk/by-uuid/
----------------------------------------------------
2. (디스크 각각) 해당 디스크에 파티션을 생성 (선택)
파티션은 디스크 용량을 어떻게 나누어야할지 설정하는 것으로, 전체를 사용하려면 하나의 파티션으로 구성합니다.
아래는 /dev/sdf라는 디스크를 하나의 파티션으로 구성하는 명령어입니다.
fdisk /dev/sdf
3. (디스크 각각) 물리적 볼륨 생성
"생성된 파티션의 이름"이나 "해당 디스크의 이름"을 활용해 그 디스크에 물리적 볼륨을 생성합니다.
sudo pvcreate /dev/sdb
# Check
sudo pvdisplay
4. 볼륨 그룹 생성
위로 인해 만들어진 각각의 물리적 볼륨들을 묶어서 하나의 볼륨 그룹을 만듭니다. 아래는 MY_GROUP이라는 볼륨 그룹을 만들었습니다.
sudo vgcreate MY_GROUP /dev/sdb /dev/sdc /dev/sdd /dev/sde
# Check
sudo vgdisplay
5. 논리적 볼륨 생성
위의 볼륨 그룹에서 내가 사용할 논리적 볼륨을 생성합니다. 아래는 MY_GROUP 볼륨 그룹에서 MY_LOGICAL_GROUP이라는 논리적 볼륨을 만든 것입니다.
sudo lvcreate —size 3.6TB —name MY_LOGICAL_GROUP MY_GROUP
# Check
sudo lvdisplay
6. 파일시스템 할당
해당 논리적 볼륨에 파일시스템을 할당합니다. 위치는 위 MY_GROUP과 MY_LOGICAL_GROUP으로 이루어져 있습니다.
sudo mkfs.ext4 /dev/MY_GROUP/MY_LOGICAL_GROUP
7. 내가 사용할 폴더에 마운트
root위치에 있는 /data에 mount해서 해당 파일시스템을 사용하려고 합니다.
sudo mkdir /data
sudo mount /dev/MY_GROUP/MY_LOGICAL_GROUP /data
'Developers 공간 [Shorts] > Software Basic' 카테고리의 다른 글
[Git] git에서 add/commit/push를 했는데 다시 돌리고 싶다 (0) | 2025.04.29 |
---|---|
[PyTorch] Tensor와의 기본연산시 Broadcasting 문제 (0) | 2025.04.29 |
[PyTorch] scaled dot product에서 Attention Map 디스플레이 하기 (0) | 2025.04.10 |
[Bash] Rsync활용하기 (0) | 2025.03.17 |
[Python] 서버 동작시 다른 파일 dynamic하게 import하기 (0) | 2025.03.17 |