LVM (Logical Volume Manager) κ°œλ… 및 생성 방법 (1)

LVM은 물리 μ„œλ²„ μŠ€ν† λ¦¬μ§€(λ””μŠ€ν¬)λ₯Ό 논리적인 μŠ€ν† λ¦¬μ§€ λ³Όλ₯¨μœΌλ‘œ 관리할 수 μžˆλŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€.

λ””μŠ€ν¬ λ˜λŠ” νŒŒν‹°μ…˜μ˜ 그룹으둜 μƒμ„±λ˜λŠ”λ° μ΄λŠ” ν•œ 개 ν˜Ήμ€ μ—¬λŸ¬ 개의 νŒŒμΌμ‹œμŠ€ν…œμ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

μ™œ LVM을 μ¨μ„œ 물리적 λ””μŠ€ν¬ 곡간을 λ…Όλ¦¬μ μœΌλ‘œ λ‚˜λˆ„μ–΄ μ“ΈκΉŒμš”?

μ„œλ²„μ—μ„œ μž‘μ—…μ„ ν•˜λ©΄ ν•„μ—°μ μœΌλ‘œ λ””μŠ€ν¬ 곡간을 μ“°κ²Œ λ©λ‹ˆλ‹€. λ””μŠ€ν¬ 관리λ₯Ό ν•˜μ§€ μ•Šκ³  꽉 μ±„μš°λ©΄ 데이터 μœ μ‹€μ΄λ‚˜ μ„±λŠ₯ μ €ν•˜ λ“±μ˜ 문제λ₯Ό μΌμœΌν‚¬ 수 μžˆμœΌλ‹ˆ μ„œλ²„ κ΄€λ¦¬μžλŠ” λ””μŠ€ν¬λ₯Ό 관리 ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ””μŠ€ν¬ 관리λ₯Ό μœ„ν•΄μ„œ λ‹¨μˆœνžˆ λ””μŠ€ν¬ μ•ˆμ— 둜그λ₯Ό μ‚­μ œν•˜λŠ” μž‘μ—…μœΌλ‘œλ„ 관리할 수 μžˆκ² μ§€λ§Œ, μ’€ 더 μœ μ—°ν•˜κ²Œ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 곡간은 쀄이고 더 ν•„μš”ν•œ 곡간은 ν™•μž₯ν•˜λŠ” κΈ°λŠ₯을 LVM이 μ œκ³΅ν•©λ‹ˆλ‹€. 그리고 LVM은 μŠ€λƒ…μƒ· κΈ°λŠ₯을 μ œκ³΅ν•΄μ„œ λ°±μ—…μš©μœΌλ‘œλ„ μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

μ•„μ£Ό μœ μš©ν•˜μ£ ?

 

그러면 LVM ꡬ쑰에 λŒ€ν•΄μ„œ 쑰금 더 μ΄ν•΄ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

κ΅¬μ‘°λŠ” μ•„λž˜μ—μ„œ μœ„λ‘œ λ³΄μ‹œλ©΄ 되고 그림에 λ‚˜μ˜¨ μš©μ–΄λŠ” μ‹€μŠ΅ν•΄λ³΄λ©΄μ„œ μ’€ 더 μžμ„Ένžˆ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ‹€μŠ΅μ„ μœ„ν•΄ μΆ”κ°€ν•œ 1G λ””μŠ€ν¬μž…λ‹ˆλ‹€.

fdisk둜 νŒŒν‹°μ…˜ μž‘μ•„μ€„ λ•Œ type을 8e(linux lvm)둜 ν•˜μ…”μ•Ό lvm용 νŒŒν‹°μ…˜μœΌλ‘œ μƒμ„±λœλ‹΅λ‹ˆλ‹€.

 

PV (Physical Volumes)

LVM이 관리해야 λ˜λŠ” 물리적 μŠ€ν† λ¦¬μ§€λ₯Ό νƒ€κ²ŸμœΌλ‘œ λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€.

pvλ₯Ό μƒμ„±ν•΄λ³Όκ²Œμš”.

참고둜 μ €λŠ” λΆ€νŒ…μ„ nvme둜 λ””μŠ€ν¬ 작고 μƒˆλ‘œ 뢙인 λ””μŠ€ν¬λŠ” SATAμ—¬μ„œ sda둜 된 κ²ƒμž…λ‹ˆλ‹€. OSμͺ½λ§κ³  데이터 λ””μŠ€ν¬ ν•˜λ‚˜ μΆ”κ°€ν•˜μ…”μ•Ό λΌμš”. λΆ€νŒ… SATA둜 첨뢀터 ν•˜μ…¨μœΌλ©΄ μΆ”κ°€λ‘œ 뢙인 λ””μŠ€ν¬λŠ” sdbμΌκ±°μ—μš”

λ§Œλ“  κ±Έ ν™•μΈν•΄μš”

 

VG (Volume Groups)

ν•œ 개 μ΄μƒμ˜ 물리적 λ³Όλ₯¨μΈ PVλ₯Ό λ¬Άμ–΄μ„œ λ§Œλ“  논리적 κ·Έλ£Ήμž…λ‹ˆλ‹€.

VGλŠ” LVM으둜 κ΄€λ¦¬λ˜λŠ” 물리적 μŠ€ν† λ¦¬μ§€μ˜ κΈ°λ³Έ λ‹¨μœ„μž…λ‹ˆλ‹€.

VGλŠ” 생성할 λ•ŒλΆ€ν„°λŠ” 이름이 ν•„μš”ν•©λ‹ˆλ‹€.

 

VGκΉŒμ§€ 잘 λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€.

μ—¬κΈ°μ„œ 잘 λ³΄μ‹œλ©΄ PE λΌλŠ” 단어가 λ³΄μ΄λŠ”λ°μš”, PEλŠ” Physical Extent둜 PV(물리 λ³Όλ₯¨)의 블둝 λ‹¨μœ„μž…λ‹ˆλ‹€. 보톡 4MB~16MB μ‚¬μ΄λ‘œ 섀정이 λ©λ‹ˆλ‹€.

μ§€κΈˆμ€ μ œκ°€ PEλ₯Ό 쑰건을 주지 μ•Šκ³  μƒμ„±ν–ˆκΈ° λ•Œλ¬Έμ— κΈ°λ³Έκ°’μœΌλ‘œ 지정이 λ˜μ—ˆμ§€λ§Œ -s μ˜΅μ…˜μ„ μ‚¬μš©ν•˜μ‹œλ©΄ PE 크기λ₯Ό 지정할 수 μžˆμŠ΅λ‹ˆλ‹€.

vgcreate [VG 이름] [PV] -s [PE μ‚¬μ΄μ¦ˆ]

PE μ‚¬μ΄μ¦ˆλ₯Ό λ„ˆλ¬΄ μž‘κ²Œ μ„€μ •ν•˜μ‹œλ©΄ μ˜€λ²„ν—€λ“œκ°€ μ¦κ°€ν•˜κ³ , 큰 PEλ₯Ό μ‚¬μš©ν•˜λ©΄ μ˜€λ²„ν—€λ“œκ°€ μ€„μ§€λ§Œ μš©λŸ‰ 쑰절의 정밀도가 λ–¨μ–΄μ§€λ‹ˆ 적절히 μ‘°μ •ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

 

LV (Logical Volumes)

VG의 μš©λŸ‰μ„ μ‚¬μš©ν•˜μ—¬ ν• λ‹Ήλœ κ°€μƒμ˜ 논리적 λ³Όλ₯¨μœΌλ‘œ 마치 일반적인 λ””μŠ€ν¬μ˜ νŒŒν‹°μ…˜μ²˜λŸΌ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

VGμ—μ„œ λ‚˜λˆ μ„œ μ“°λŠ” κ±°λ‹ˆκΉŒ λ‹Ήμ—°νžˆ VG보닀 큰 값을 가지진 μ•Šμ•„μš”.

LVλ₯Ό νŒŒν‹°μ…˜μ²˜λŸΌ ν™œμš©ν•  수 μžˆλ‹€λŠ” μ˜λ―ΈλŠ” νŒŒμΌμ‹œμŠ€ν…œμ„ λ§ˆμš΄νŠΈν•˜μ—¬ νŠΉμ • 디렉터리에 μ—°κ²°ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆμŒμ„ λœ»ν•©λ‹ˆλ‹€.

lvκΉŒμ§€ 생성을 λ‹€ν–ˆμŠ΅λ‹ˆλ‹€~

display 정보λ₯Ό μž˜λ³΄μ‹œλ©΄ μš°λ¦¬κ°€ λ§Œλ“ λŒ€λ‘œ 정보가 λ‚˜μ˜€λŠ”λ°μš”, Current LEκ°€ 250개인데 μ΄λŠ” LV Size / PE κ°’μž…λ‹ˆλ‹€.

LV PathλŠ” /dev/[VG 이름]/[LV 이름]으둜 λΌμžˆλŠ”λ°μš” μš°λ¦¬κ°€ 이 경둜둜 λ°”λ‘œ μ‚¬μš©ν•  수 μžˆμ„κΉŒμš”?

λ‹Ήμ—°νžˆ μ•„λ‹™λ‹ˆλ‹€! νŒŒμΌμ‹œμŠ€ν…œμœΌλ‘œ 포맷해주고 마운트λ₯Ό ν•΄μ€˜μ•Ό μš°λ¦¬κ°€ 곡간을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

xfs 파일 μ‹œμŠ€ν…œμœΌλ‘œ λ§Œλ“€μ–΄λ³Όκ²Œμš”.

/data λ””λ ‰ν„°λ¦¬λ‘œ λ§ˆμš΄νŠΈν•©λ‹ˆλ‹€.

λ§ˆμš΄νŠΈκ°€ μž˜λμ–΄μš”

단, μ§€κΈˆ λ§ˆμš΄νŠΈλŠ” μž¬λΆ€νŒ…λ˜λ©΄ 정보가 호둜둝 λ‚ μ•„κ°„λ‹΅λ‹ˆλ‹€. λ”°λΌμ„œ /etc/fstab에 우리의 마운트 경둜 섀정을 λ°˜λ“œμ‹œ λ„£μ–΄μ€˜μ•Ό μž¬λΆ€νŒ…ν•΄λ„ μ•ˆλ‚ μ•„κ°€μš”.

 

이번 κΈ€μ—μ„œλŠ” lvm κ°œλ…κ³Ό 생성 과정에 λŒ€ν•΄ μ •λ¦¬ν•΄λ΄€λŠ”λ°μš”, λ‹€μŒ 글은 LVλ₯Ό μ–΄λ–»κ²Œ ν™•μž₯ν•˜κ³  μΆ•μ†Œν•˜λŠ”μ§€μ— λŒ€ν•΄μ„œ μ •λ¦¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.