Contents

리눅스 하드디스크 / Quota 관리

   May 2, 2023     7 min read

IDE, SCSI, SATA, SAS 디스크의 정의 및 디스크의 차이점

IDE

  • 흔히 과거에 사용하던 방식이 모두 IDE 방식이다.
  • 병렬방식이고 1개의 채널에 2개씩의 장치를 연결할 수 있다.
  • 마스터, 슬레이브 개념도 IDE기기에서 나온 것 이다.

SCSI

  • 서버용, 워크스테이션용으로 사용되던 방식이다.
  • IDE방식으로는 컨트롤 할 수있는 데이터의 처리 속도의 한계가 있는 부분을 해소 했으며, 고급 저장 장치(10,000rpm / 15,000rpm)의 데이터 처리 품질과 안정성에 집중했고 RAID기능 등 여러가지 부가기능을 사용할 수 있게 한 방식이다.
  • 다만, 고급 컨트롤러와 고급 기능 등을 사용하기 위해서 일반적으로 서버보드가 아닌 이상 메인보드에서 SCSI를 지원하는 경우는 없으며, 아답텍 컨트롤러와 같이 별도의 컨트롤러가 필요하다.

SATA

  • IDE방식에서는 늘어날 수 있는 기기의 한계가 존재하며,더불어서 전송속도 역시 한계가 있다.
  • 근본적으로 IDE는 병렬이라는 점에서 한계가 생기기 때문에 직렬연결로 연결방식을 변경했으며, 하나의 SATA커넥션은 하나의 채널로 인식됩니다.
  • 따라서, 기존과 같은 점퍼 설정 등이 필요없고, 하나 기기의 속도가 다른 기기의 속도에 영향을 미치지 않고 독립적으로 작동합니다.

SAS

  • SCSI의 직렬연결버전으로 SCSI 역시 병렬연결로 인해서 연결자체의 번잡함이 존재하기 때문에 이를 해소하기 위해서 나온 방식이며, 역시 SCSI와 같이 별도의 컨트롤러가 필요합니다.

하드 디스크 구조

사진첨부

사진첨부

  • 데이터는 가장 외곽에서부터 안쪽으로 저장된다.
  • 용량 = C * H * S * sector size ( 512byte )
    C : Cylinder 수, H : Header 수, S : 한 Track의 Sector 수

파티션 정의

  • 어떤 한 디스크의 분할 영역으로 디스크를 여러 개의 서로 다른 파티션으로 나누어 사용

  1. MBR (Master Boot Record)
    • 첫 번째 디스크의 첫 번째 트랙의 첫 번째 섹터.
    • 컴퓨터가 처음 부팅될 때 BIOS가 읽고 시작하는 부분.
    • 파티션에 대한 정보(Partition Table)가 있다.
    • BIOS는 이 정보를 읽고 active 파티션을 찾아 그 파티션의 부트섹터를 읽게 된다.

  2. 파티션의 종류
    • Primary 파티션 : 4개까지만 허용한다.
    • Extended 파티션 : 1개만 허용한다.
    • Logical 파티션 : Extended 파티션이 있는 경우 Logical 파티션이 1개이상이 필요
      ( 해당 파티션의 경우 파티션 넘버가 “5” 부터 시작 )

  3. 각 Type 별 Device / Partition 표현식

사진첨부

fdisk

  • fdisk [파티션할 디바이스]
  • ex. fdisk /dev/hda, fdisk /dev/sda

명령어설명
m도움말 출력
ppartition table 출력
dpartition 삭제
n새로운 파티션 생성
lpartition type 출력
tpartition type 변경
aactive partition 설정
q저장하지 않고 종료 (fdisk에서 한 일을 취소)
w저장하고 종료



사진첨부

명령어

fdisk -l
fdisk /dev/sdb



사진첨부

사진첨부

명령어

1. 하드디스크 장착

  • hdb = IDC0:0 = /dev/hda

2. 파티션 분할하기

# fdisk -l
# fdisk /dev/sda
n
p
1
enter
enter
p
w

# badblocks -v /dev/sdb1
배드블럭이 존재하는 하드디스크를 사용하게 되면 정상적인 운영 중에 갑자기 다운되거나 파일이 손상되는 등의 심각한 상황이 발생할 수 있다. (배드블록 확인하기)



3. 특정 파일 시스템으로 포맷하기

# mkfs.ext3 /dev/sdb1



4. 마운트할 폴더 생성하기

# mkdir /mydata
# ls /mydata



5. 폴더 마운트하기

# mount (-o rw) /dev/sdb1 /mydata  <참고> -o ro
# cd /mydata
# touch 1 2 3 4



6.

# vi /etc/fstab

/dev/sdb1 /mydata ext3 defaults 1 1



7.

# reboog or init 6



  • lost+found 디렉터리는 fsck 등의 명령어로 파일시스템을 점검할 때 생성되는 파일이 저장되는 곳이다. 그냥 없는 것처럼 무시하고 생각하자.

# df -h
# umount /mydata



Quota

  • 쉘 사용자의 계정 용량을 제한하는 기능으로, 웹 호스팅 서비스 또는 계정 서비스에서 사용자에게 일정한 계정 공간을 할당하고자 할 때 많이 사용된다.

blocks (soft=0, hard=0)



  • 사용자가 현재 사용중인 총 블록(용량) 수를 자동으로 표시해 주므로, 이 값은 수정 할 수 없음을 주의하도록 하자.
  • blocks에서 soft는 사용자가 사용할 수 있는 실제 계정 용량으로, 여기서 할당한 용량에 도달하게 되면 경고 메시지를 전달해 주고, 유예 기간(grace period) 동안에는 hard으로 할당한 용량 범위 내까지 soft의 설정 용량을 초과하더라도 사용할 수 있게 된다. 반면에 hard는 사용자가 사용할 수 있는 절대 용량으로 이 용량을 초과하면 더 이상 계정 용량을 사용할 수 없게 된다.

inodes(soft=0, hard=0)



  • 사용자가 현재까지 사용하고 있는 파일의 총 개수를 의미하며, 이것도 자동으로 사용 중인 총 파일 개수를 표시해 준다.
  • soft는 사용자가 사용할 수 있는 파일의 개수를 지정하고. hard는 사용할 수 있는 절대 파일 개수를 지정한다.
  • test1사용자의 계정 용량을 100메가(soft)로 제한하고, 이용량이 넘었을 때는 일정 기간 최대 150메가(hard)까지 사용할 수 있도록 하고, 사용할 수 있는 총 파일 개수를 500개로 제한하는 쿼터 설정은 다음과 같다.

유예 기간(grace period)

  • 사용자의 계정 사용량이 soft limit로 지정한 용량에 도달하였을 때 부터 hard limit 범위 내에서 계정 용량을 초과하여 사용할 수 있도록 한시적으로 적용되는 기간입니다. 이 기간이 경과되면 계정 용량은 soft limit 이상의 용량의 초과하여 계정을 사용할 수 없게 된다. 유예 기간 정보는 edquota 명령에 -t 옵션을 지정하여 확인할 수 있다.

# edquota -u -t
# edquota -g -t


  • 기본값은 1주일로 설정되어 있다.
  • 유예 기간을 변경하고자 한다면 sec(초), min(분), hour(시), day(일), month(달) 단위로 상기 화면의 내용을 수정하면 된다. 12시간으로 수정해 보자.

Quota and inodes 설정 연습

Step 01.

  • 파티션 생성 -> 포맷 -> 마운트
/dev/sdb1 /dir1 -> 500M
/dev/sdb2 /dir2 -> 500M



Step 02.

  • 환경 설정
# vi /etc/fstab
/dev/sdb1 /dir1 ext3 defaults,usrquota 1 2
/dev/sdb2 /dir2 ext3 defaults,grpquota 1 2

[ + 추가)
# mkfs.ext3 /dev/sdb
# y
# mount /dev/sdb /dir1
# mount /dev/sdb /dir2 ]

# mount -o remount /dir1
# mount -o remount /dir2



Step 03.

  • 쿼터 파일 생성
# chmod 777 /dir1
# chmod 777 /dir2

# cd /dir1
# touch aquota.user
# chmod 600 aquota.user

# cd /dir2
# touch aquota.group
# chmod 600 aquota.group



Step 04.

# quotacheck -mf /dir1
# quotaon /dir1

# quotacheck -mfg /dir2
# quotaon /dir2

# useradd user1
# useradd user5
# useradd user6
# groupadd sales

# cat /etc/group | grep sales
그룹 ID 확인

# vi /etc/passwd
user5와 user6의 기본 그룹 ID를 sales의 ID로 변경하기



사진첨부

# edquota -u user1 : user 쿼터 수정
block   soft hard inodes soft hard
        4096 7168 1 3
        (4 MB) (7 MB)

# edquota -g sales : group 쿼터 수정 (user5,user6 :sales를 기본 그룹으로 변경)
block   soft hard inodes soft hard
        4096 7168 1 3
        (4 MB) (7 MB)



Step 04.

  • user quota 확인
# su - user1
$ cp /boot/vmlinuz-2.6.18-194.el5 /dir1/test1 --1.6MB사용
$ cd /dir1
$ cp test1 /dir1/test2 --3.2MB사용
$ cp test1 /dir1/test3 --4.8MB사용
$ cp test1 /dir1/test4 --6.4MB사용
$ cp test1 /dir1/test5 --8.0MB사용
# repquota -a



Step 05.

  • group quota 확인
# su - user5
$ cp /boot/vmlinuz-2.6.18-194.el5 /dir2/test1 --1.6MB사용
$ cd /dir2
$ cp test1 /dir2/test2 --3.2MB사용
$ su - user6
$ cp test1 /dir2/test3 --4.8MB사용
$ cp test1 /dir2/test4 --6.4MB사용
$ cp test1 /dir2/test5 --8.0MB사용
# repquota -ga



Step 06.

  • quota 정보 복제
# edquota -p user1 user2 : 사용자의 쿼터정보를 user2에게 복사
# su - user2
$ cp /boot/vmlinuz-2.6.18-194.el5 /dir1/ex01 --1.6MB사용
$ cd /dir1
$ cp test1 /dir1/ex01 --3.2MB사용
$ cp test1 /dir1/ex02 --4.8MB사용
$ cp test1 /dir1/ex03 --6.4MB사용
$ cp test1 /dir1/ex04 --8.0MB사용
# repquota -a



사진첨부

사진첨부