본문 바로가기

리눅스

8. 디스크 관리(1)

0. 목차

 1. Storage 종류

 2. Storage 저장 방식

 3. VMware Workstation에서의 Block storage

 4. 디스크 사용법 및 설치

 5. LVM(Logical Volume Manager)

--------------------------------------------------------------------------------------------------------------------------------

 

1. Storage 종류 ( 연결 방식)
1.1. DAS ( Direct Attach Stroage)
  - IDE, SCSI, SATA
  - 원격지 설치 불가능, 물리적인 Machine 내장 혹은 최대 1M정도를 넘지 않는 곳에 설치
  - 물리적인 연결메체의 최대 유효거리를 넘지 못한다.
  - 안정적이며 속도가 빠르다. 안정적.
  - 비용이 저렴하다.
  - 파일 시스템 공유는 불가능하다.
1.2. NAS (Network Area Stroage)
  - 통상적으로 Network 환경내에 구성
  - 속도는 100mbps~1Gbps
  - 원격지 설치 가능
  - NFS
  - 저렴하며 구성이 쉽다.
  - 네트워크에 병목이 생기면 속도 저하 발생.
  -사용자가 늘어나도 속도 저하 발생.
  -파일 시스템 공유 가능.
1.3. SAN ( Storage Area Network)
  - storage 환경내에 구성한 네트워크
  - Fiver Channel 구성됨.
  - Storage용 전용 Switch, HBA(Server) 카드
  - 속도는 통상 16Gbps
  - 원격지 설치 가능, 파일 시스템 공유 가능
  - 너무 비싼 가격.

 

2. storage 저장방식
2.1. Block Storage( AWS EBS : Elastic Block Storage, 단 OS가 설치된 DISK는 이동 불가 ) 
  - 실제 물리적으로 Block 형태 (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 방식의 디스크 의미, 이제는 거의 찾아볼수 없음
       * 참고 -> HD : IDE 방식의 디스크 의미, 이제는 거의 찾아볼 수 없음
  - A : 물리적으로 첫번째 디스크를 의미함.
  - 1 :  첫번째 파티션을 의미

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

3.4. 첫번째 디스크를 3개로 파티션을 나눈 경우
  - SDA1, SDA2, SDA3

 

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

  

4.2. 워크스테이션 디스크 생성

  - 가상 머신 설정을 통하여 Hard disk 추가 과정 진행

다음과 같은 진행으로 10GB와 5GB 생성

  - 리눅스의 명령어를 통해 디스크 설치 확인

  

    1) lsblk 명령어

lsblk 명령어 :디스크가 sdb와 sdc의 이름으로 설치된 것을 볼 수 있음

 

    2) fdisk -l 명령어

fdisk -l을 이용한 방법

    3) cat /proc/partitoins 명령어

cat /proc/partitoins를 사용한 방법

    * 윈도우 파티션 확인 방법

윈도우+r -> diskmgmt.msc 를 통해 디스크 관리 가능

 

4.4. 리눅스 환경 디스크 관리

  - fdisk /dev/디스크 : 명령어를 통하여 디스크를 관리한다.

sdb와 sdc 디스크 관리

 

  - 옵션 m : 명령어를 보여준다.

                아래의 명령어 중 n, p, w, d, t를 많이 사용한다.

명령어 목록

  - 옵션 n : 새로운 파티션을 생성하는 명령어

                -> partition type : primary와 extended로 선택되며, 최대 primary 3개 + extended 1개로 구성

                -> partition number : 파티션의 번호 부여

                -> First sector : 디스크의 첫번째 섹터를 부여

                -> last sector : 디스크의 마지막 섹터를 부여, 파티션을 여러 개 사용할 경우 섹터를 끝까지 적용x  

n 옵션을 통해 sdb와 sdc의 파티션 생성

  - 옵션 p : 파티션을 보여주는 명령어

sdb1 파티션이 생성됨을 보임
sdc1 파티션 생성 확인

  - 옵션 w : 생성한 파티션을 적용

파티션을 적용

  - 생성한 파티션을 확인. 디스크 출력 명령어를 이용하여 확인

 

lsblk를 이용한 확인 : sdc1 sdb1이 생성됨을 볼 수 있다.

  - 디스크 사용을 위해서는 첫째로 파일 시스템으로 만들어야한다.

     -> 1) mkfs -t 형식 /dev/디스크

         2) mkfs.ext4 /dev/디스크

mkfs 명령어를 이용하여 xfs 형식의 파일시스템 생성 
mkfs 명령어를 이용하여 ext4형식의 파일시스템 생성

       -> blkid 명령어로 확인

xfs와 ext4잘 만들어진 것을 볼 수 있다.

  - 디스크 사용을 위해서는 마지막으로 디스크를 디렉토리에 mount를 해야한다.

      -> 폴더 안에 파일이 있더라도 디스크로 마운트하게 되면 기존 파일이 아닌 디스크 내용을 출력

      -> 위에서 만든 sdb1과 sdc1을 각각 /test1 /test2 디렉토리에 마운트와 내용물 확인

sdb1을 /test1으로 mount 시 b.txt가 보이고 umount 시 a.txt가 보임
sdc1을 /test2으로 mount 시 bb.txt가 보이고 umount 시 aa.txt가 보임
mount 명령어로 확인

- 10G를 5G두개로 파티셔닝

     -> firstsector와 last sector을 조정함하고 n옵션을 통해 파티션 두개 생성 ( sdb1

fdisk를 통해 2개의 파티션 생성

    -> w로 저장 후 lsblk로 확인하면 정상적으로 sdb1과 sdb2가 생성됨

     -> 이 후 파일시스템 생성과 마운트를 진행하면 사용이 가능한 공간이 생성

정상적으로 파티션이 사용가능

 

  - 파티션을 제거하기 위해서는 umount -> fdisk의 d옵션을 통해 제거

          -> 파일의 내부가 아닌 루트 홈디렉토리에서 진행

umount를 통해 마운트를 제거하여 d옵션을 통해 파티션을 제거
df -Th를 통해 파티션이 제거됨을 확인

 

 

5. LVM(Logical Volume Manager)

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

 -  파티션 생성 시 반드시 Linux LVM (8e) System ID 변경할 것 => t 옵션을 사용

5.1. pv 관련 명령어

  - pvcreate : PV 생성 , fdisk로 만들어진 파티션을 pv로 생성

  - pvremove : PV 제거

  - pvscan : pv의 모든 디스크 스캔 

  - pvdisplay : pv 속성 출력 

  - pvs : pv 정보 출력

 

5.2. vg 관련 명령어

  - vgcreate : VG 생성

  - vgextend : VG 확장

  - vgscan : vg의 모든 디스크 스캔 

  - vgdisplay :  vg의 속성 출력

  - vgs : vg 정보 출력

  - vgremove : VG 제거

 

5.3. lv 관련 명령어

  - lvcreate -L 용량 -n : LV 생성

  - lvremove : LV 제거

  - lvextend -L 용량: LV 용량 확장

                     +용량G : 용량만큼 추가 , 용량G : 용량이 되는 만큼 추가

 

5.4. 용량 확장 후 적용

  - resize2fs : ext 파일시스템 타입의 lv 사이즈 재조정

  - xfs_growfs : xfs 파일시스템 타입의 lv 사이즈 재조정

 

5.5. lvm 생성 실습 과정

  - sdb를 파티셔닝. 이때 lvm으로 이용하기 위해 -t 옵션을 통해 리눅스 lvm 시스템 아이디로 변경한다.

시스템 아이디가 lvm으로 생성됨을 볼 수 있다.

  - lsblk로 확인하면 sdb1이 정상적으로 생성됨을 확인.

sdb1 파티션 생성 확인

 

  - pvcreate 명령어를 통해 sdb1으로 pv를 생성.

sdb1으로 pv가 성공적으로 생성

  - pv가 제대로 생성되었는지 확인

세 가지 명령어를 통해 생성됨을 확인.

  - vgcreate를 명령어로 sdb1파티션을 이용하여 sdkim이름을 가진 vg 생성.

sdkim vg 생성 확인

  - lvcreate 명령어를 통해 3G 용량을 가진 파티션 3개 생성.

vg sdkim을 이용하여 3g 용량을 가진 파티션 3개 생성

  - 파티션을 사용하기 위해서 파일시스템 생성. 2개는 ext4 타입, 1개는 xfs 타입으로 생성.

mkfs.ext4를 사용하여 파일 시스템 생성
mkfs.xfs를 이용하여 파일 시스템 생성

  - blkid 명령어를 통해 파일 시스템 확인

3개의 파일시스템이 생성됨을 확인

  - 파티션 사용을 위해 mount 후 확인.

3개의 파티션이 성공적으로 마운트되어 사용 가능

5.6. lvm 용량 확장 실습

  - 파티션에 용량을 추가하려고 하지만 vg sdkim의 용량이 부족.

파티션을 생성하기에 용량 부족 
남아있는 5G의 sdc 디스크를 이용하여 확장

  - sdc를 lvm ID를 가진 파티션으로 생성.

LVM ID를 가진 sdc1 생성

  - sdc1을 이용하여 pv 생성 후 확인

sdc1을 이용하여 pv생성

  - pvextend 명령어를 이용하여 VG sdkim에게 sdc1을 추가 후 확인

기존 1020에 비해 5.88GB로 용량이 추가됨.

 

  - lvextend -L 명령어를 통해 각각의 lvm 파티션에게 용량 확장 후 확인.

sdkim 123에게 1G가 확장되어 4G를 가짐

  - 하지만 df -Th 명령어를 이용하여 확인하면 용량 확정이 적용되지않음.

이 과정만으로는 용량이 추가되지않는다.

  - resize2fs 명령어와 xfs_growfs 명령어를 통해 용량확장된 파티션을 재적용

용량 확정 재적용 과정

  - 확인을 통해 용량 확장이 적용됨을 알 수 있음.

4.0G로 확장됨을 보임

 

5.7. lvm 제거 실습 과정

  - lvm을 제거하기 위해서는 생성과정을 거슬러 올라가며 지운다.  

    마운트해제 -> lv 제거 -> vg 제거 -> pv 제거 -> 파티션 제거

 

  - 마운트 제거 후 sdkim1,2,3 lv 제거, lvscan을 통해 제거 확인.

lv 제거를 확인

  - vg skim을 제거 후 확인.

vg 제거를 확인

  - pv /dev/sdb1,sdc1을 제거.

pv로 만들어진 sdb1과 sdc1 제거

 

  - fdisk를 통해 sdb와 sdc의 생성된 파티션을 제거.

d 옵션을 통해 파티션 제거

  -lsblk로 확인

성공적으로 파티션이 제거됨을 확인

 

'리눅스' 카테고리의 다른 글

10. ACL  (0) 2022.02.24
9. 디스크 관리(2)  (0) 2022.02.23
7. 사용자 및 그룹 관리 (2)  (0) 2022.02.21
6. 사용자 및 그룹 관리 (1)  (0) 2022.02.20
5. 파일 및 디렉토리 권한  (0) 2022.02.19