본문 바로가기

Linux/2) 리눅스 서버 관리자 과정

3_2 File System Administration - 파일 시스템 생성

mkfs 명령어를 통한 파일 시스템 생성

: fdisk 명령어로 생성한 파티션을 포맷할 때 사용

: fdisk로 생성한 파티션은 공간만 확장되어 있고 포맷되지 않아 OS가 없다고 생각하면 됨

: mkfs 명령은 한 장치(보통 한 하드디스크 파티션)를 파일 시스템으로 만드는데 사용

: 장치이름은 /dev/hda1, /dev/sdb2 이런 식의 디스크 장치 이름이거나, /, /usr/, /home 같은 파일시스템을 위한 마운트 경로가 사용

 

-명령어 옵션-

옵션 설명
-m minimum percentage로 파일 시스템에 마련할 여분의 공간을 관리자가 결정하는 옵션
-m을 사용하지 않으면 newfs 명령어가 파일 시스템의 크기에 따라서 적절한 값을 계산하여 사용
-m 다음에는 여분의 공간을 명시하는데 전체 파일 시스템 중에서 몇 %를 여분으로 둘 것인지를 숫자로 명시
-v 작업 상태, 결과를 자세하게 보여줌
-t 만들어질 파일 시스템의 형태를 지정

 

1. 파일 시스템 종류별 생성

∇ 선수 작업 

- 파티션 작업 (ex: /dev/sdb1 (primary 1GB))

# fdisk -l /dev/sdb

/dev/sdb1        2048 1026047 1024000  500M 83 Linux

[root@server1 ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7556a027

Device     Boot Start     End Sectors  Size Id Type
/dev/sdb1        2048 1026047 1024000  500M 83 Linux

 

- 파티션 설정 (ex: /dev/sdc1 (primary(1G))

# fdisk /dev/sdc

# fdisk -l /dev/sdc

/dev/sdc1        2048 2097151 2095104 1023M 83 Linux

[root@server1 ~]# fdisk /dev/sdc

[root@server1 ~]# fdisk -l /dev/sdc
Disk /dev/sdc: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8d84ee5a

Device     Boot Start     End Sectors  Size Id Type
/dev/sdc1        2048 2097151 2095104 1023M 83 Linux

 

# mkfs.[TAB][TAB]

[root@server1 ~]# mkfs.
mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs     
mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat

[참고] 파일시스템

        ext3 - CentOS 5.X/RHEL 5.X

        ext4 - CentOS 6.X/RHEL 6.X

        ext4,xfs - CentOS 7.X/RHEL 7.X

        ext4,xfs - CentOS 8.X/RHEL 8.X

 

# mkfs.ext2 /dev/sdb1   (# mkfs -t ext2 /dev/sdb1)

[root@server1 ~]# mkfs.ext2 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb1 contains a ext4 file system
	created on Thu Aug 26 17:46:19 2021
Proceed anyway? (y,N) y
Creating filesystem with 512000 1k blocks and 128016 inodes
Filesystem UUID: 9f7027f9-43a2-40d1-92b0-06c9f61b44f3
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

 

# mkfs.ext3 /dev/sdb   (# mkfs -t ext3 /dev/sdb1)

[root@server1 ~]# mkfs.ext3 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb1 contains a ext2 file system
	created on Thu Aug 26 18:57:25 2021
Proceed anyway? (y,N) y
Creating filesystem with 512000 1k blocks and 128016 inodes
Filesystem UUID: c09d4b13-4fb9-4804-aacf-20f9ee677c45
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

 

# mkfs.ext4 /dev/sdb1 (# mkfs -t ext4 /dev/sdb1)

[root@server1 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb1 contains a ext3 file system
	created on Thu Aug 26 19:01:43 2021
Proceed anyway? (y,N) y
Creating filesystem with 512000 1k blocks and 128016 inodes
Filesystem UUID: dfa2e9b5-1246-44d9-bfef-d1daf52e4c51
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

 

2. minfree (Minimum Free Space)

: 최소 남은 공간(Minimum Free Space)는 전체 공간의 퍼센트로 할당

: 이 공간은 파일 시스템이 만들어질 당시 예약되어 생성됨

: 기본 예약 값은 ( ( 64MB / 파티션 크기) *100 )

: 위의 값은 0% 에서 50% 사이 값이 할당되고 근사값으로 결정됨

: 최소 남은 공간은 파일시스템이 full 되었을 때 파일시스템을 접근할 수 있는 최소 공간으로 남겨져 있기에 중요

: 파일 시스템이 full이 되면 , root 사용자만 사용할 수 있음 (일반 사용자는 이 공간을 사용할 수 없음)

: 파일 시스템에서 minfree 공간은 0(zero)일 수 없음 ( 최소 0%)

 

∇ 파일 시스템 생성 시 minfree 공간 할당

(minfree 5%)  # mkfs.ext4 /dev/sdb   - 일반적인 경우 자동으로 5프로로 minfree 공간이 생성됨

(minfree 1%)  # mkfs.ext4 -m 1 /dev/sdb1  - minfree 공간을 1프로로 설정

(minfree 5%)  # tune2fs -m 5 /dev/sdb1   - 이미 생성된 파일에 minfree 공간을 조정할 경우 사용

 

* tune2fs : 리눅스 파일시스템의 변경가능한 파라미터값을 설정하는 명령어

             : 이미 생성된 파일을 조정할 때 사용

 

∇ 실습

# mkfs.ext4 -m 1 /dev/sdb1   -m옵션 : minfree

:  sdb1에 minfree 공간을 1%로 할당

[root@server1 ~]# mkfs.ext4 -m 1 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb1 contains a ext4 file system
	created on Thu Aug 26 19:02:19 2021
Proceed anyway? (y,N) y
Creating filesystem with 512000 1k blocks and 128016 inodes
Filesystem UUID: bec5ba7c-1443-4a73-8441-5d1b070993d6
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

 

# mkfs.ext4 -m 10 /dev/sdc1

: sdb1에 minfree 공간을 10%로 할당

[root@server1 ~]# mkfs.ext4 -m 10 /dev/sdc1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 261888 4k blocks and 65536 inodes
Filesystem UUID: 7b889001-f42c-4f43-bcc9-07da7f3bfc96
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: 0/8
done

 

# mkdir -p /radi0 /raid1 

 : 디렉토리 생성 (-p 옵션: 하위 디렉토리 생성시 상위 디렉토리가 존재하지 않더라도 디렉토리 모두 생성)

# mount /dev/sdb1 /raid0 : 파일 시스템이 sdb1과 raid0 디렉토리로 연결해 사용 가능하게 해줌 (마운트하는 과정)

# mount /dev/sdc1 /raid1 : 파일 시스템이 sdc1과 raid1 디렉토리로 연결해 사용 가능하게 해줌 (마운트하는 과정)

# df -h /radi0 /radi1 : 파일시스템 디스크 공간 확인

 

radi0과 radi1의 사용 가능 공간이 다른 것을 확인할 수 있음

(radi0의 minfree를 1%로 잡고 radi1의 minfreefmf 10%로 잡았기 때문)

[root@server1 ~]# mkdir -p /raid0 /raid1

[root@server1 ~]# mount /dev/sdb1 /raid0
[root@server1 ~]# mount /dev/sdc1 /raid1
[root@server1 ~]# df -h /raid0 /raid1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       477M  2.6M  963M   1% /raid0
/dev/sdc1       991M  2.6M  871M   1% /raid1

 

[확인] minfree 공간 확인

# tune2fs -l /dev/sdb1 | grep -i 'Reserved block count'   (minfree 1%)

# tune2fs -l /dev/sdc1 | grep -i 'Reserved block count'   (minfree 10%)

[root@server1 ~]# tune2fs -l /dev/sdb1 | grep -i 'Reserved block count'
Reserved block count:     2618
[root@server1 ~]# tune2fs -l /dev/sdc1 | grep -i 'Reserved block count'
Reserved block count:     26188

 

파일시스템 생성 이후 minfree 공간 변경

# tune2fs -m 1 /dev/sdc1 

: sdc의 minfree 공간을 1%로 변경

[root@server1 ~]# tune2fs -m 1 /dev/sdc1
tune2fs 1.45.6 (20-Mar-2020)
Setting reserved blocks percentage to 1% (2618 blocks)

 

확인) # df -h /raid0 /raid1

: 이용가능한 부분이 같아진 것을 확인할 수 있음

[root@server1 ~]# df -h /raid0 /raid1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       991M  2.6M  963M   1% /raid0
/dev/sdc1       991M  2.6M  963M   1% /raid1