리눅스 하드디스크 / Quota 관리
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 수
파티션 정의
- 어떤 한 디스크의 분할 영역으로 디스크를 여러 개의 서로 다른 파티션으로 나누어 사용
- MBR (Master Boot Record)
- 첫 번째 디스크의 첫 번째 트랙의 첫 번째 섹터.
- 컴퓨터가 처음 부팅될 때 BIOS가 읽고 시작하는 부분.
- 파티션에 대한 정보(Partition Table)가 있다.
- BIOS는 이 정보를 읽고 active 파티션을 찾아 그 파티션의 부트섹터를 읽게 된다.
- 첫 번째 디스크의 첫 번째 트랙의 첫 번째 섹터.
- 파티션의 종류
- Primary 파티션 : 4개까지만 허용한다.
- Extended 파티션 : 1개만 허용한다.
- Logical 파티션 : Extended 파티션이 있는 경우 Logical 파티션이 1개이상이 필요
( 해당 파티션의 경우 파티션 넘버가 “5” 부터 시작 )
- Primary 파티션 : 4개까지만 허용한다.
- 각 Type 별 Device / Partition 표현식
사진첨부
fdisk
- fdisk [파티션할 디바이스]
- ex. fdisk /dev/hda, fdisk /dev/sda
명령어 | 설명 |
---|---|
m | 도움말 출력 |
p | partition table 출력 |
d | partition 삭제 |
n | 새로운 파티션 생성 |
l | partition type 출력 |
t | partition type 변경 |
a | active 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
사진첨부
사진첨부