Sunday, April 8, 2018

CentOS 6.6 리눅스 관리] 1.3 디스크 관리 - parted 명령을 이용한 파티션 분할


안녕하세요. 썬구루입니다.

이번 게시물에서는 parted 명령을 통한 하드 디스크 파티션 분할에 대해 알아볼 것입니다. MBR 방식의 파티션 테이블은 2.2TB 하드 디스크가 한계입니다. 그 이상의 디스크 또는 스토리지 LUN에 대해 fdisk 명령으로 파티션을 분할하려 한다면 아래와 같은 메시지를 보게 될 것입니다.

WARNING: The size of this disk is 2.5 TB (2528661995520 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID partition table format (GPT)

윈도우 및 유닉스 등 기타 운영체제에서 2.2TB 이상의 하드디스크에 대해서는 GPT 방식의 파티션 테이블을 사용합니다. 그래서 parted 명령을 사용하여 대용량 디스크의 파티션 분할하는 방법에 대해 알아볼 것입니다.



■ parted 명령

이 명령은 fdisk 와 같이 리눅스 환경에서 디스크 또는 LUN의  파티션을 생성, 삭제, 관리하기 위해 사용되는 명령이다. fdisk와는 달리 GTP와 MBR 방식의 파티션 테이블을 사용할 수 있으며 2.2TB 이상의 대용량 디스크 또는 LUN에 대해 파티션 생성 및 관리가 가능하다.

1). 명령 형식


parted [옵션] [ device [command [option]]]

2). 옵션

옵 션
내 용
-l
 디스크들의 파티션 정보를 보여준다.

[root@sunguru ~]# parted -l | grep -v Error
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number  Start   End     Size    Type     File system     Flags
 1      1049kB  211MB   210MB   primary  ext4            boot
 2      211MB   4506MB  4295MB  primary  linux-swap(v1)
 3      4506MB  21.5GB  17.0GB  primary  ext4

Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number  Start   End     Size    Type     File system  Flags
 1      32.3kB  5379MB  5379MB  primary  ext4
 2      5379MB  21.5GB  16.1GB  primary

[root@sunguru ~]# 

3). 하부 명령

하부 명령
내 용
mklabe VALUE
 파티션 테이블을 생성한다. [값은 gpt, msdos 가 있음]
print
 파티션 테이블 정보를 출력한다.
unit VALUE
 사용할 단위를 정의한다. [값은 MB, GB, TB, % 가 있음]
mkpart
 새로운 파티션을 생성한다.[ 순서 : mkpart part-type fs-type start end ]
rm NUMBER
 기존 파티션을 제거한다.
q
 parted 명령을 종료한다.

4). 예제

일단 실습 이전에 4TB 용량의 가상 하드 디스크(Virtual Hard Disk)를 가상머신(VM)에 추가한다. 용량은 GB 단위이기 때문에 4096을 입력하면 4TB 디스크가 만들어진다. 그리고 씬 프로비져닝(Thin Provisioning) 된 가상 하드디스크가 만들어지기 때문에 실제 하드디스크의 물리적 용량 4TB 가 필요 없다. 수 십 메가바이트 파일이 만들어지고 실제 데이터가 저장되면 점점 늘어날 것이다. 그리고 하드 디스크가 CentOS 리눅스 운영체제에 인식될 수 있도록 다음과 같은 명령을 사용한다. [ Channel / SCSI ID / LUN ]

 [root@sunguru ~]# echo "- - -" > /sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host0/scan 

아래와 같은 명령을 실행하여 4TB 하드 디스크 인식을 확인한다.

[root@sunguru ~]# lsblk | grep -i disk
sda      8:0    0   20G  0 disk
sdb      8:16   0   20G  0 disk
sdc      8:32   0    4T  0 disk 
[root@sunguru ~]# 

아래와 같은 명령을 실행하여 이전에 추가한 20GB 디스크와 조금 전 추가한 4TB 디스크의 파티션 정보 및 파티션 테이블 저장 방식을 확인한다. msdos는 MBR 방식이다.

[root@sunguru ~]# parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      32.3kB  5379MB  5379MB  primary  ext4
 2      5379MB  21.5GB  16.1GB  primary

[root@sunguru ~]# parted /dev/sdc print
Error: /dev/sdc: unrecognised disk label                           
[root@sunguru ~]# 




fdisk 명령을 사용하여 4TB 디스크의 파티션을 분할하려 한다면 parted를 사용하라는 메시지가 출력될 것이다.

[root@sunguru ~]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x3c173aab.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: The size of this disk is 4.4 TB (4398046511104 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID 
partition table format (GPT).

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): q

[root@sunguru ~]# 

parted 명령을 사용하여 상호 대화형 모드에서 하부 명령으로 mklabel을 사용하거나 아래와 같이 바로 하부 명령을 입력하여 gpt 방식의 파티션 테이블을 사용하도록 만들 수 있다.

[root@sunguru ~]# parted /dev/sdc mklabel gpt
Information: You may need to update /etc/fstab.                   
[root@sunguru ~]# parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number  Start  End  Size  File system  Name  Flags
[root@sunguru ~]# 

상호 대화형 모드에서 하부 명령으로 unit과 mkpart를 사용하여 파티션을 분할할 수도 있지만 아래와 같이 명령을 실행하여 파티션을 분할할 수도 있다. 아래는 하나의 파티션에 통으로 용량을 모두 할당하였다.

[root@sunguru ~]# parted /dev/sdc unit GB mkpart 1th ext4 0 4398
Information: You may need to update /etc/fstab.
                 
[root@sunguru ~]# parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number  Start   End     Size    File system  Name  Flags
 1      1049kB  4398GB  4398GB               1th
[root@sunguru ~]#
[root@sunguru ~]# lsblk /dev/sdc
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc      8:32   0   4T  0 disk
└─sdc1   8:33   0   4T  0 part 
[root@sunguru ~]# 

다음과 같은 명령을 실행하여 분할되어 있는 파티션을 삭제할 수 있다.

[root@sunguru ~]# parted /dev/sdc rm 1
Information: You may need to update /etc/fstab.
               
[root@sunguru ~]# parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

[root@sunguru ~]# lsblk /dev/sdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc    8:32   0   4T  0 disk
[root@sunguru ~]# 




다시 다음과 같이 파티션을 분할해보자.

[root@sunguru ~]# parted /dev/sdc unit GB mkpart 1th ext4 0 2048
Information: You may need to update /etc/fstab.
                 
[root@sunguru ~]# parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2048GB  2048GB               1th

[root@sunguru ~]# parted /dev/sdc unit GB mkpart 2nd ext4 2048 4398
Information: You may need to update /etc/fstab.                   

[root@sunguru ~]# parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2048GB  2048GB               1th
 2      2048GB  4398GB  2350GB               2nd

[root@sunguru ~]# lsblk /dev/sdc
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdc      8:32   0    4T  0 disk
├─sdc1   8:33   0  1.9T  0 part 
└─sdc2   8:34   0  2.1T  0 part
[root@sunguru ~]# 

서버시스템 하드디스크 연결 구성도

또는 아래와 같이 퍼센트 단위로 분할할 수도 있다.

[root@sunguru ~]# parted /dev/sdc rm 2
Information: You may need to update /etc/fstab.                   
[root@sunguru ~]# parted /dev/sdc rm 1
Information: You may need to update /etc/fstab.                   
[root@sunguru ~]# parted /dev/sdc unit GB mkpart 1th ext4 0 50%
Information: You may need to update /etc/fstab.                   
[root@sunguru ~]# parted /dev/sdc unit GB mkpart 2nd ext4 2199 100%
Information: You may need to update /etc/fstab.                   
[root@sunguru ~]# parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2199GB  2199GB               1th
 2      2199GB  4398GB  2199GB               2nd

[root@sunguru ~]# lsblk /dev/sdc
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc      8:32   0   4T  0 disk
├─sdc1   8:33   0   2T  0 part 
└─sdc2   8:34   0   2T  0 part 
[root@sunguru ~]#  

또는 아래와 같이 parted 명령 안에서 상호 대화형 모드로 파티션을 분할할 수도 있다.

[root@sunguru ~]# parted /dev/sdc rm 2
Information: You may need to update /etc/fstab.
                   
[root@sunguru ~]# parted /dev/sdc rm 1
Information: You may need to update /etc/fstab.                   

[root@sunguru ~]# parted /dev/sdc
GNU Parted 2.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)                                                           
(parted) unit GB                                                   
(parted) print                                                     
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

(parted) mklabel gpt
Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk
will be lost. Do you want to continue?
Yes/No? Y
(parted) mkpart 1th ext4 0 2048
(parted) print                                                     
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      0.00GB  2048GB  2048GB               1th

(parted) mkpart 2nd ext4 2048 4398
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      0.00GB  2048GB  2048GB               1th
 2      2048GB  4398GB  2350GB               2nd

(parted) q                                                         
Information: You may need to update /etc/fstab.                   

[root@sunguru ~]# lsblk /dev/sdc
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdc      8:32   0    4T  0 disk
├─sdc1   8:33   0  1.9T  0 part 
└─sdc2   8:34   0  2.1T  0 part 
[root@sunguru ~]# 

여기까지 parted 명령을 사용한 파티션 분할에 대해 알아보았습니다. 다음 게시물에서는 EXT 파일시스템 관리에 대해 알아볼 것입니다.



No comments:

Post a Comment