Server/Cent OS

Linux 디스크 관리

heyoon2j 2019. 7. 5. 17:24

■ 디스크 관리

1. Linux 디스크 할당

  파티션: 디스크를 쓰기 위해서는 파티션을 해야 한다. 디스크를 사용할 만큼 나눈다.

 

 ② 파일 시스템 설정: 타입은 ext2, ext3, ext4, ntfs, vfat, auto 등이등이 있으며, ext2와 ext3부터의 차이는 저널링 기술이 추가되었다. 저널링 기술은 스토리지에 데이터 변경, 삭제를 하면 로그를 저장하는 기술이다. 단점으로는 로그를 남기기 때문에 느리다. ext4는 ext3를 보완한 시스템이다.

 

 ③ 마운트: 저장 장치에 접근할 수 있는 경로를 디렉터리 구조에 편입시키는 작업, 외부장치(Disk 등)에 액세스 할 수 있는 로컬로 사용할 수 있는 링크를 만든다. 그렇기 때문에 사용자는 마운트 된 장치에만 접근이 가능하다. [1]

 

 

2. WIndow 디스크 할당

 ① 파티션: 디스크를 쓰기 위해서는 파티션을 해야 한다.

 

 ② 파일 시스템 설정

 

 ③ 드라이브 명 할당

 

 

3. LVM

· 순서

 

· PV(Physical Volume)

- LVM 용도로 초기화된 파티션

 

· VG(Volume Group)

- 하나 이상의 PV를 가지고 만들어진 그룹

 

· LV(Logical Volume)

- VG의 일정 공간을 분할하여 만들고, 실제 사용되는 공간

 

 

4. 실습

 - cat /proc/partitions 또는 lsblk 명령어를 치게 되면 파티션들 정보가 나온다.

 - sr0: /dev/cdrom에 연결되어 있다.

 

 

1) 기본 파티션 생성

 명령어: #fdisk Device

 - Device의 파티션 설정, 앞에 /dev를 붙여줘야 된다.

 

 - 많이 쓰이는 Command: n(파티션 생성), d(파티션 삭제), p(파티션 테이블 출력), w(테이블 내용 저장하고 종료), q(테이블 내용을 저장하지 않고 종료)

- n : 파티션 생성

- p : 주 파티션 생성

- 1 : 주 파티션 1번으로 설정

- First cylinder, Last cylinder : 크기 설정 

 

- 주 파티션만 확장 파티션으로 만들 수 있다!!.  그리고 확장 파티션에서 여러 개의 논리 파티션을 만들 수 있다.

 => 참고, 주 파티션에서만 시스템 파티션이 생성 가능하다. 그래서 보통 주 파티션 1 + 확장 파티션으로 나누어진다.

 

- p: 파티션 테이블 내용 출력

- 파티션 1개가 Disk 전체 크기로 설정된 것을 확인할 수 있다. 

 

- w: 테이블 내용 저장하고 종료.

- 변경되었음을 알려준다.

 

- #mkfs.ext4 /dev/sdc1: 생성한 sdc의 파티션 sdc1의 파일 시스템을 ext4로 설정했다.

 

- #mount /dev/sdc1 /test1: sdc1 파티션을 /test1에 링크를 건다.

 

- 결과

 

 

2) 파티션 삭제

- #umount /dev/sdc1 /test1: /dev/sdc1 파티션 /test1에 마운트 된 것을 해제한다.

   

- #fdisk /dev/sdc -> d: d Command는 파티션을 지우는 Command이다.

- p를 통해 모든 파티션이 지워진 것을 확인할 수 있다

 

 

3) LVM 생성

- sdb의 파티션 설정, 앞에 /dev를 붙여줘야 된다.

 

- n: 파티션 생성

- p: 주 파티션 설정

- cylinder: 크기 설정

 

- t: 파티션의 시스템을 변경할 수 있다.

- 1번 파티션을 Linux LVM으로 변경하였다.

 => LVM을 쓰기 위해서는 꼭 변경시켜줘야 한다.

 

- p: 파티션 테이블내용 출력

- 파티션 2개로 나누어졌고, 시스템이 Linux LVM으로 바뀐 것을 확인할 수 있다.

 

- w: 파티션테이블 내용 저장

- 변경되었음을 알려준다.

 

- #pvcreate /dev/sdb1 /dev/sdb2: /dev/sdb1, /dev/sdb2 Physical Volume 생성

 

- #pvscan: Physical Volume 정보 출력

 

- #pvdisplay: Physical Volume 상제 정보 출력

 

- #vgcreate ix /dev/sdb1 /dev/sdb2: ix라는 Volume Group을 생성하고, Group안에 /dev/sdb1와 /dev/sdb2

을 추가시킨다.

 

- #vgreduce ix /dev/sdb2: 그룹 ix에서 /dev/sdb2를 제거한다.

 

- #vgetend yoon /dev/sdb2: 이미 생성되어 있는 Group: yoon에 /dev/sdb2를 추가한다.

 

- #vgdisplay: Volume Group의 정보를 출력한다.

- 그룹 yoon의 경우, 기존 20GB에서 5GB가 추가되어 VG Size가 24.52GB로 변한 것을 확인할 수 있다.

 

- #lvcreate –L +4GB –n ix1 ix: Logical Volume ix1을 Volume Group ix에 Size를+4GB 하여 생성

 

- #mkfs.ext4 /dev/ix/ix1: 생성한 Logical Volume에 ext4 파일 시스템 설정

 

- mount /dev/ix/ix1 /test2: /dev/ix/ix1 lv를 /test2에 마운트 시킨다.

 

- #lvextend –L 9GB /dev/yoon/yoon2: /dev/yoon/yoon2을 9GB로 확장시킨다.

- /dev/yoon/yoon2를 9GB로 확장시켰다는 내용이 출력된다.

 

- df -h: 파티션별 저장공간 사용량

- 하지만 파일 시스템 정보를 확인하면, 그대로인 것을 알 수 있다. 이유는 기존 LV는 파일 시스템이 적용되어 있지만, 확장을 위해 추가한 LV는 파일 시스템에는 적용이 안 되어있기 때문이다. 원래라면 적용을 하기 위해서는 처음부터 전부 해제하고 다시 설정해야 한다. 하지만 이 방식을 따르지 않고 바로 적용할 수 있는 Resizing 하는 명령어가 있다.

 

- #resize2fs /dev/yoon/yoon3: /dev/yoon/yoon3의 파일 시스템을한다.

- create와 다르게 mount는 되어 있기 때문에 할 필요가 없다.

 

- 다시 파일 시스템 정보를 확인하면, 정상적으로 변경된 것을 알 수 있다.

 

 

4) LVM 삭제

- 생성했던 순서 반대로 삭제한다.

 

- #umount /test2: /test2에mount 된 것을 해제한다.

 

- #lvremove /dev/ix/ix1: /dev/ix/ix1을 Logical Volume에서 삭제한다.

 

- #vgremove ix: ix 이름을 가진 Volume Group을 삭제한다.

 

- #pvremove /dev/sdb1: /dev/sdb1을 Physical Volume에서 삭제한다.

 

 

- #fdisk /dev/sdb -> d: d Command는 파티션을 지우는 Command이다.

- p를 통해 1개의 파티션이 지워진 것을 확인할 수 있다

 

 

 

출처

[1] https://ko.wikipedia.org/wiki/%EB%A7%88%EC%9A%B4%ED%8A%B8