차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:lvm [2016/09/13 18:02] V_Ltech:lvm [2022/12/03 12:22] (현재) 172.70.233.27
줄 1: 줄 1:
 {{tag>linux ubuntu hdd mount 우분투 lvm}} {{tag>linux ubuntu hdd mount 우분투 lvm}}
-======Lvm======+======LVM(Logical Volumn Manager)====== 
 +LVM은 물리적 스토리지 이상의 추상적 레이어를 생성해서 논리적 스토리지(가상의 블록 장치)를 생성할 수 있게 해준다. 
 +직접적으로 물리적 스토리지를 사용하는 것보다 다양한  측면에서 유연성을 제공한다.
  
 +** 장점**
 +  * 유연한 용량
 +  * 크기 조정 가능한 스토리지 풀(Pool)
 +  * 온라인 데이터 재배치
 +  * 편의에 따라 장치 이름 지정
 +  * 디스크 스트라이핑
 +  * 미러 볼륨
 +  * 볼륨 스냅샷
 +=====개념=====
 +나에게 보여지는 디스크가 하드웨어와 1:1 대응이 되는 것이 아니기 때문에
 +기본 개념을 이해하고 있는 것이 좋다.
  
-[[tech:Lvm Mount|Mounting a Linux LVM volume +기존 파일시스템이 블록 장치에 직접 접근해서 읽고/쓰기를 했다면 
-]]+LVM을 사용하면 파일 시스템이 LVM이 만든 가상의 블록 장치에 읽고/쓰기를 하게 된다. 
 + 
 +{{:tech:lvm.jpg|}} 
 + 
 +이 관계를 이해해야 한다. 각 물리볼륨은 그룹을 통해서 묶이고, 논리볼륨을 구성하게 된다.  
 +(자세한 설명은 [[http://kit2013.tistory.com/199|여기]]를 참조한다) 
 + 
 +  
 +[[tech:Lvm Mount|Mounting a Linux LVM volume]]
 You do not mount a partition of type "Linux LVM" the same way you mount a partition using a standard Linux file system (e.g. ext2, ext3). You do not mount a partition of type "Linux LVM" the same way you mount a partition using a standard Linux file system (e.g. ext2, ext3).
 +=====볼륨그룹=====
 +====vgconvert====
 +vgconvert 명령어로 LVM1 포멧에서 LVM2 포멧으로 변환이 가능하다.
 +
 +====HDD추가====
 +
 +  vgextend JoinedVG /dev/sde1
 +해당 볼륨그룹에 HDD를 할당한다. 
 +
 +====이동====
 +  vgmove JoinedVg /dev/sde1
 +해당 볼륨그룹에 충분한 공간이 있다면, 해당 하드의 내용물을 다른 곳(HDD)으로 이동한다.
 +====제거====
 +  vgreduce JoinedVG /dev/sde1
 +해당 HDD를 볼륨그룹에서 제거한다.
 +
 +vgmove 후 vgreduce 를 하면 볼륨그룹을 파괴하지 않고, 자료를 보존하면서 안전하게 HDD를 제거할 수 있다. 
 +
 +=====논리=====
 +
 +  lvcreate -L LV용량 -n LV명 VG명 (ex - lvcreate -L 1T -n MyLV MyVG)
 +
 +
 +  lvcreate -l 100%FREE -n Joined-lvm JoinedVG
 +JoinedVG의 모든 공간을 사용하여  Joined-lvm 형성
  
 +<file>
 $  fdisk -l /dev/hda $  fdisk -l /dev/hda
  
줄 16: 줄 63:
 /dev/hda1                      13      104391   83  Linux /dev/hda1                      13      104391   83  Linux
 /dev/hda2              14       19457   156183930   8e  Linux LVM /dev/hda2              14       19457   156183930   8e  Linux LVM
 +</file>
  
   mount /dev/hda2 /tmp/mnt   mount /dev/hda2 /tmp/mnt
-mount: /dev/hda2 already mounted or /tmp/mnt busy+  mount: /dev/hda2 already mounted or /tmp/mnt busy
  
 First, let's determine the volume group containing the physical volume /dev/hda2. First, let's determine the volume group containing the physical volume /dev/hda2.
  
 +<file>
 $ pvs $ pvs
   PV         VG         Fmt  Attr PSize   PFree    PV         VG         Fmt  Attr PSize   PFree 
   /dev/hda2  VolGroup01 lvm2 a-   148.94G 32.00M   /dev/hda2  VolGroup01 lvm2 a-   148.94G 32.00M
   /dev/hdb2  VolGroup00 lvm2 a-   114.94G 96.00M   /dev/hdb2  VolGroup00 lvm2 a-   114.94G 96.00M
 +</file>
  
 Next, let's list the logical volumes in VolGroup01. Next, let's list the logical volumes in VolGroup01.
  
 +<file>
 $ lvdisplay /dev/VolGroup01 $ lvdisplay /dev/VolGroup01
   --- Logical volume ---   --- Logical volume ---
줄 57: 줄 108:
   Read ahead sectors     0   Read ahead sectors     0
   Block device           253:3   Block device           253:3
 +</file>
  
 The logical volume I would like to "mount" (in purely the computing-related sense) is /dev/VolGroup01/LogVol00. The other logical volume is a swap partition. The logical volume I would like to "mount" (in purely the computing-related sense) is /dev/VolGroup01/LogVol00. The other logical volume is a swap partition.
  
 +<file>
 $ mount /dev/VolGroup01/LogVol00 /tmp/mnt $ mount /dev/VolGroup01/LogVol00 /tmp/mnt
 +</file>
  
- =====LVM logical volum 확장=====+=====LVM logical volume 확장=====
 vg 볼륨이 1000M 남아있고, lv 볼륨이 현재 100M 이다. 이때 lv 볼륨을 200M 로 확장할려고 한다. vg 볼륨이 1000M 남아있고, lv 볼륨이 현재 100M 이다. 이때 lv 볼륨을 200M 로 확장할려고 한다.
 현재 lvm 볼륨은 mount 되어 사용중이다. 온라인 상태에서 확장을 할려고 하는거다. 현재 lvm 볼륨은 mount 되어 사용중이다. 온라인 상태에서 확장을 할려고 하는거다.
- +
 > lvextend -L +100M /dev/vg_data/lv_data ( 볼륨을 확장할 device 이름) > lvextend -L +100M /dev/vg_data/lv_data ( 볼륨을 확장할 device 이름)
 > resize2fs /dev/vg_data/lv_data ( 온라인 상태에서 확장할 수 있는 명령어, RHEL 5 에서 사용가능) > resize2fs /dev/vg_data/lv_data ( 온라인 상태에서 확장할 수 있는 명령어, RHEL 5 에서 사용가능)
 > df -h 명령어로 확인해 보면 mount 된 볼륨이 확장된걸 확인할 수 있다. > df -h 명령어로 확인해 보면 mount 된 볼륨이 확장된걸 확인할 수 있다.
 +
 +용량이 아니라 클러스터 숫자로 확장하려면 
 +''-l'' 옵션을 사용하면 된다.
 +
 +  $ sudo lvextend -l +257 /dev/backup/data
 +  Size of logical volume backup/data changed from 2.73 TiB (715017 extents) to 2.73 TiB (715274 extents).
 +  Logical volume data successfully resized.
 +
 +=====LVM thin=====
 +
 +LVM은 일반적으로 볼륨을 만들 때 블록을 할당함.  대신 LVM 씬 풀은 기록될 때  블록을 할당함. 이 동작을 ''씬 프로비저닝''이라고함.
 +
 +
 +====장점====
 +
 +공간을 사용할 때에만 할당하므로, 자원을 절약할 수 있다.
 +설정된 볼륨이 물리적으로 사용 가능한 공간보다 훨씬 클 수 있다.
 +
 +====단점====
 +
 +씬 프로비저닝은 실제 용량 이상으로 할당되기 때문에 지속해서 모니터링을 하지 않으면 어느 순간 가용 공간이 바닥날 수 있다. 특히 가상화 환경에서 사용하는 경우, 가용 공간이 없어지는 순간 가상머신을 사용할 수 없게 된다.
 +
 +무엇보다 씬 프로비저닝의 가장 큰 단점 중 하나는 호스트에 부하가 발생한다는 점임. 호스트는 지속해서 스토리지 공간의 동적 할당과 공간 회수를 수행해야 한다.
 +
 +호스트가 미션 크리티컬한 환경일 경우 씩 프로비저닝을 사용하는 편이 좋다.
 +=====하드 연결=====
 +
 +https://m.blog.naver.com/17beans/222096214708
 +
 +