관리 메뉴

IT창고

리눅스 파일시스템 본문

서버운영/Linux

리눅스 파일시스템

방구석여포 2017. 8. 30. 22:07

파일 시스템(File System)이란 파일이나 자료를 쉽게 발견하고 접근할 수 있도록 보관 또는 조직하는 체제로서 리눅스에서 파티션을 나누고 정리하는데 사용합니다. 리눅스의 대표적인 파일 시스템은 ext3, ext4, swap, xfs, iso9660, nfs등이 있습니다. 저는 CentOS6.9버전을 사용하며 6.9버전에서는 ext4가 기본 파일 시스템입니다. ext4는 1EB의 최대 파일 시스템 크기와 16TB 크기의 파일을 지원하며 서브 디렉토리를 64000개 지원하고 파일은 약 40억개를 지원합니다.


CentOS를 설치하는 경우는 서버용으로 사용할 경우가 많은데 이 CentOS리눅스에 사용할 하드디스크의 종류가 있습니다 Disk의 종류로 4가지가 있는데 IDE, SATA, SCSI, SAS로 IDE에서 SAS순서대로 갈수록 더 좋은 하드디스크인데 SAS는 특히 크기가 작고 빠르며 안정적이라 서버용으로 적합 합니다.

파티션(Partition)이란 하나의 물리적인 디스크를 여러개의 논리적인 디스크로 나누는 것입니다. 리눅스의 파티션은 주(Praimary)파티션과 확장(Extended)파티션하고 논리(Loigical)파티션으로 구성할수있습니다. windows를 예로들어 C:\, D:\로 표현할수있는데 Linux에서는 /dev/sda , /dev/sdb와 같이 표현합니다. 

리눅스의 파티션은 디스크하나당 주파티션은 최대 4개까지 생성이 가능하며 필요에 따라 확장파티션과 논리파티션으로최대 12개까지 생성이 가능합니다.


이제 파티션의 설정과 용량증설에 대해 알아보겠습니다. 

1. 디스크 추가 합니다.

하드디스크를 직접추가해주시면 됩니다. 만약 VMwave를 사용한다면 VMwave에 리눅스가 설치된 곳에 Settings를 눌러 Add로 하드디스크를 추가하면 됩니다.


2. 일반적인 상황이라면 문제없지만 VMwave를 사용하신다면 reboot를 한번 해줍니다.


3. fdisk 명령어를 사용해서 추가한 하드디스크를 확인합니다.

fdisk명령어는 디스크 파티션을 설정,확인,삭제를 할때 사용하는 명령어입니다. 사용방법은

fdisk [옵션][dev_name]이고 -l옵션을 사용하면 현재 시스템이 인식한 모든 디스크 정보를 볼수있습니다.


4. 파티션을 생성합니다.

위에 과정을 정상적으로 했다면 /dev/sdb Disk가 확인됩니다. 파티션 설정 명령어는 fdisk [dev_name]으로 해당 파티션을 설정합니다 ex) fdisk /dev/sdb

위와 같은 사진이 나오며 m을 눌러보면 사용방법을 알려줍니다 그 중 자주 쓰는 내용을 정리하면 아래의 표와 같습니다.

 d

delete a partiton  파티션삭제 

 m

 print this menu  도움말

 n

 add a new partition 파티션생성

 p

 print the partition table  파티션 설정 확인

 q

 quit without saving changes  저장하지 않고 종료

 t

 change a partition's system id  파티션 타입 변경

 w

 write table to disk and exit  저장 후 종료

표를 확인하고 파티션을 생성해줍니다.

사진과 같이 진행을 하면 /dev/sdb1 파티션이 생성이 됩니다. 위의 사진에 First Cylinder와 Last cylinder가 있습니다 1-261은 총 하드디스크의 크기를 뜻합니다 숫자를 입력하지않고 엔터를 치면 기본값으로 적용이되고 Last cylinder에서는 실린더값이 아니라 용량을 넣어주어도 됩니다. M은 MB G는 GM입니다. 즉 실린더값이나 용량으로 파티션을 지정합니다.

command action에서 e기능이 있습니다 설정으로하면 확장파티션이 만들어 지는데 확장파티션에는 데이터를 저장할수없으며 확장파티션을 만든후 논리파티션을 만들수있습니다. 확장파티션은 논리파티션을 위한 파티션으로 실제 데이터가 저장되지 않는데 논리파티션을 구성하기 위해 크기를 확장파티션에 미리 지정한 뒤 지정한 범위내에서 논리파티션을 나눌수있습니다 주파티션의 번호는 1~4번까지인데 논리파티션의 번호는 5~12번까지 지정이됩니다.


5. 파일 시스템을 생성합니다.

파티션을 만들었다고 바로 사용할수는 없습니다 파티션에 파일 시스템을 생성해야하는데 생성하는 명령어가 있습니다mkfs(make file system)이란 명령어로 생성된 파티션에 데이터가 저장이 될때 어떠한 형식으로 데이터를 저장할지 결정하는 파일시스템을 생성해줍니다. ex) mkfs -t ext4 /dev/sdb1


6. 마운트포인트 생성과 마운트

리눅스는 파일단위로 장치를 관리하기 때문에 새롭게 만든 디스크를 사용하기 위해서는 생성한 파티션을 임의의 디렉토리와 연결시켜야 사용할수있습니다. 마운트포인트는 장치와 연결되는 디렉토리를 뜻하고 마운트는 특정 디렉토리에 장치(H/W)를 연결하는 것입니다.  

우선 연결시킬 디렉토리를 만듭니다. mkdir /gsk 로 최상위폴더에 임의의폴더를 만들고 마운트명령어를 사용합니다.

mount [옵션] [dev_name] [mount_point]이고 마운트를 해제하려면 umount [mount_point]를 사용하면됩니다. 마운트를 해제할때는 주의사항이 있는데 마운트를 해제할 경로에 위치한 상태에서는 해당 명령어를 사용할수없고 마운트된 지점에 파일을 사용중일때에도 사용이 불가능합니다.

ex) mount /dev/sdb1 /gsk

마운트를 했다면 mount를 입력하거나 df -h를 입력하여 마운트상태를 확인할수 있습니다.


7. /etc/fstab파일로 마운트 정보를 등록합니다.

재부팅을 하면 연결시켰던 마운트가 해제되어있습니다. 마운트할게 1~2개 라면 괜찮지만 많을 경우 리눅스를 부팅할때마다 명령어를 입력하기는 힘듭니다. /etc/fstab파일에 vi편집기로 정보를 등록해놓으면 부팅할때마다 자동으로 연결이되는데 cat명령어로 fstab파일을 확인해보면 이미 등록된 글이 있습니다 필드에 맞춰 입력해야하는데 필드는 아래와같습니다.

[장치명]  [마운트포인트]  [파일시스템타입]  [옵션]  [덤프생성유무]  [파일시스템검사유무] 

 장치명

파티션에 접근하기 위한 파일경로 

 마운트포인트

장치에 연결되는 디렉토리 

 파일시스템타입

 mkfs명령어로 생성한 해당 파티션의 파일 시스템 종류

 옵션

보통defaults옵션을 사용 

 덤프

 해당 파티션에 문자 발생시 해당 문제에 대한 정보가 저장되어있는 파일 0생성안함 1생성함 

 검사유무

 부팅시 해당 장치에 문제가 있는지 검사하는 무결성체크 옵션 0검사안함 1최우선 2다음순위

ex)

vi 편집기로 맨 아래에 사진과 같이 추가해주시고 재부팅을 해보시면 정상적으로 연결된 모습을 볼수있습니다.


8. UUID(Universial Unique IDentifier) 

UUID는 범용 고유 식별자로 해당 장치를 뜻하는 고유값으로 /etc/fstab에 장치명 대신에 사용할 수 있으며 디스크 추가/제거 작업시 장치명이 변경되어 마운트가 되지 않거나 부팅이되지 않는 현상을 방지할 수 있습니다. UUID을 확인하는 명령어는 blkid명령어로 시스템상에 모든 파티션 장치명을 UUID형태로 출력합니다. blkid[장치명]는 특정장치의 UUID을 확인할수있습니다.   ex) blkid /dev/sda1 


Tip

파일시스템을 생성(mkfs)할때 UUID가 할당되는데 파일시스템을 새로생성하면 UUID가 바뀝니다

'서버운영 > Linux' 카테고리의 다른 글

리눅스 파일시스템 쿼터  (0) 2017.09.05
리눅스 RAID구성  (0) 2017.08.31
리눅스 예약작업  (0) 2017.08.29
리눅스 프로세스  (0) 2017.08.29
리눅스 소유권과 허가권  (0) 2017.08.25
Comments