글
디스크 관리
디스크 관리
1. 파일 시스템
- 저장 장치에 파일을 관리하기 위한 체계
- 각 운영체제별 고유의 파일시스템이 존재
Windows = NTFS , FAT16/32/64, ......
Linux = ext2/3/4, .....
+-----------------------------+
l 부 l 슈 l I l D l
l 트 l 퍼 l | l a l
l 블 l 블 l N l t l
l 럭 l 럭 l O l a l
l l l D l l
l l l E l l
l l l list l l
+-----------------------------+
2. 파티션
- 연속된 저장 공간을 하나 이상의 연속되고 독립된 영역으로
나누어서 사용 할 수 있도록 정의한 규약
1) 주 파티션 ( Primary )
- 부팅이 가능한 파티션
- 데이터를 담을수 있는 파티션
- 파티션 1 ~ 4 ( 최대 4개까지 생성 가능 )
2) 확장 파티션 ( Extended )
- 논리 파티션을 생성하기 위한 파티션
- 파일 저장 용도로 사용할 수 없다
3) 논리 파티션 ( Logical )
- 주 파티션과 같은 역할
- 확장 파티션 내에 생성 가능한 파티션
- 파티션 5 ~ ( 제한 x )
RAID <---- 디스크 가상화 기법
- RAID , LVM <---- linux 에서 사용
- 장치가 순서대로 독립적으로 있다
- 저렴한 디스크를 엮어서 하나의 고가의 디스크처럼 사용 할 수 있다.
- 구현 방법
l- H/W RAID
l- S/W RAID
+---------------+
1. RAID 구성
1) Linear ( 선형 )
- 디스크를 배열 형태로 단순 연결
- 데이터의 내용을 순차적으로 기록
2) Stripe ( Level 0 )
- 데이터의 내용을 분산 저장
- 속도가 빠른 장점이 있다
- 데이터의 안전성을 보장 할 수 없다 (하나의 디스크가 고장나면 다른 데이터는 무쓸모)
3) Mirror ( Level 1 )
- 안전성이 뛰어난 구성
- 반드시 디스크가 두개 이상 있어야 한다
- 디스크의 용량을 절반밖에 사용 할 수 없다
4) Level 5
- stripe 장점 + mirror 장점
- 최소 3개 이상의 디스크가 필요하다
- parity bit ( XOR )
XOR = 0 : 0 = 0
XOR = 1 : 1 = 0
XOR = 1 : 0 = 1
-> 2개 이상의 장치에 장애가 발생한 경우에는 복구 불가능
5) Level 0 + 1
- stripe 구성후 mirror 구성으로 묶음
6) Level 1 + 0
- mirror 로 구성후 stripe 구성으로 묶음
---------------------------------------- [ 실 습 - RAID ( Linear ) ] -----------------------------------------
1. 디스크 추가
- 1G 크기의 디스크 4개를 설치한다.
# fdisk -l 로 설치가 잘 됐는지 확인
/dev/sdb (1G)
/dev/sdc (1G)
두개로 실습 진행
2. 파티션 생성 ( 레이드 파티션 )
# fdisk < dev_name>
ex) # fdisk /dev/sdb
----- option --------
n <------- 파티션 생성
ent
1 <------- 파티션 번호
ent
ent
w <-------- 파티션 저장
ex) # fdisk /dev/sdb
t <-------- 시스템 ID 변경 ( fd - 레이드 파티션)
fd <---- RAID 파티션으로 변경
w
ex) 전체용량으로 RAID 파티션 생성
# fdisk <dev_name>
n -> ent 4번 -> t -> fd -> w
3. RAID 생성
Tool = mdadm ( RAID 장치들을 관리하기 위한 리눅스 유틸리티 )
1) mdadm 패키지 설치
# yum -y install mdadm.x86_64
2) mdadm 실행
ex) # mdadm --create <option> <dev_name> ...
-l <level> & ( --level )
-n <num> & ( --raid-devices )
ex) /dev/sdb1 , /dev/sdc1 ---> ( linear ) /dev/md/linear
이 두 장치를 가지고 (리니어 구성을하고) 이름이 linear 이다.
# mdadm --create /dev/md/linear -l linear -n 2 /dev/sdb1 /dev/sdc1
l
l
이위치를 stripe & 0 으로 바꾸면 stripe 구성이된다
4) RAID 확인
1) device 직접 확인
# ls -l /dev/md*
- /dev/md/linear ---> /dev/md127 로 링크 돼어있다
2) /proc/mdstat
# cat /proc/mdstat <--------- 정보 출력
3) mdadm tool 을 이용하여 확인
# mdadm --detail <dev_name>
l
md127 or linear
# mdadm --detail /dev/md/linear <---- 정보 출력
5) 파일 시스템
# mkfs -t <type> <dev_name>
ex) /dev/md/linear ext4 파일 시스템 생성 (포맷)
# mkfs -t ext4 /dev/md/linear
- 확인
# file /dev/md127 <------------ 원본 파일을 써야 한다
ex) file -s <dev_name> <-------- 자세하게 출력
# file -s /dev/md127
6) 마운트
ex) mount <dev_name> <mount_point> <---- 마운트 설정
ex) umount <dev_name> or <mount_point> <----- 마운트 해재
# mount /dev/md/linear /raid/linear/
- 확인
# df -h
+-------------------------- 주의 사항 ---------------------------+
l 1. 마운트 포인트는 반드시 임의의 디렉터리이어야 한다 l
l 2. 마운트 해제시에 마운트포인트 위치에 있다면 해제 불가 l
+-----------------------------------------------------------------+
7) 장치 해제
1) umount
# umount /dev/md/linear
2) mdadm
ex) mdadm --stop <dev_name>
# mdadm --stop /dev/md/linear
l
l----- 링크만 끊어냄 사용했던 흔적은 남아있다
ex) mdama --zero-superblock <dev_name>
# mdadm --zero-superblock /dev/sdb1 <--------- 남아있는 흔적을 지워준다
# mdadm --zero-superblock /dev/sdc1
---------- 오토 마운트 -----------
/etc/fstab <-------------- 이곳에서 작성 한다
------------------------------------- [ 실습 - RAID ( mirror ) ] --------------------------------------------
1. 디스크 추가
/dev/sdb (1G)
/dev/sdc (1G)
2. 파티션 생성 ( 레이드 파티션 )
/dev/sdb1
/dev/sdc1
3. 레이드 생성 ( mdadm )
# mdadm --create /dev/md/mirror -l (mirror or 1) -n 2 /dev/sdb1 /dev/sdc1
4. 레이드 확인
# ls -l /dev/md*
# cat /proc/mdstat
# mdadm --detail /dev/md/mirror
5. 파일 시스템
#mkfs -t ext4 /dev/md/mirror
- 확인
# file -s /dev/md127
6. 마운트
# mkdir /raid/mirror
# mount /dev/md/mirror /raid/mirror
- 확인
# df -h
7. 장애 발생 ( --faulty )
# mdadm <raid_dev_name> -f <dev_name>
ex) /dev/sdc1 장애 발생 시키기
# mdadm /dev/md/mirror -f /dev/sdc1
# reboot
# mount /dev/md/mirror /raid/mirror <--- 다시 마운트하면
파일은 그대로 있다
8. 복구
1) 디스크 추가
/dev/sdd (1G)
2) 파티션 생성 ( 레이드 파티션 )
/dev/sdd1
# fdisk /dev/sdd <-------- 레이드 파티션 생성하기
n -------> ent x 4 -------> t ----------> fd --------> w <--- 레이드 파티션 생성 과정
3. raid_device에 장치 추가
-> raid_device 장치가 고장난 상태에서 추가하면 : 복구
-> raid_device 장치가 고장난 상태가 아니데 추가하면 : spare (여유분)
ex) mdadm <raid_dev_name> --add <dev_name>
# mdadm /dev/md/mirror --add /dev/sdd1 <------- 장치 추가하기
[해보기] /dev/sde(1G) 디스크에 전체용량으로 레이드 파티션을 생성
/dev/sde1을 /dev/md/mirror에 추가
# fdisk /dev/sde
n -------> ent x 4 -------> t -------> fd ------> w <-- 레이드 파티션 생성 과정
# mdadm /dev/md/mirror --add /dev/sde1
# mdadm --detail /dev/md/mirror <---------- 확인하면
-- /dev/sde1 장치가 spare(여유분) 로 추가된걸 볼수 있다
# mdadm /dev/md/mirror -f /dev/sdb1 <------ 장치 고장내기
# mdadm --detail /dev/md/mirror <-------- 확인해보면
sdb1 이 빠지고 sde1 이 위치한다
# ls -l /raid/mirror
-- 확인해보면 파일은 무사하다
9. 장치 제거
1) 마운트 해제
# umount /dev/md/mirror
2) 장치 멈춤
# mdadm --stop /dev/md/mirror
ex) mdadm --zero-superblock <dev_name>
# mdadm --zero-superblock /dev/sdb1
# mdadm --zero-superblock /dev/sdc1
# mdadm --zero-superblock /dev/sdd1
# mdadm --zero-superblock /dev/sde1
---- 만들었던 모든 장치 제거 ----
------- Level 5 명령어 ------
( /dev/sdb1 + /dev/sdc1 + /dev/sdd1 ) <----- 사용 장치
# mdadm --create /dev/ma/level5 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1
--------------------------------------- [ 실습 - RAID ( Level 0 + 1) ] --------------------------------------
1. 디스크 추가
/dev/sdb(1G)
/dev/sdc(1G)
/dev/sdd(1G)
/dev/sde(1G)
2. 파티션 생셩 ( 레이드 파티션)
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
3. 레이드 생성
1) /dev/md/stripe1 ( level 0 stripe )
/dev/sdb1 , /dev/sdc1
# mdadm --create /dev/md/stripe1 -l 0 -n 2 /dev/sdb1 /dev/sdc1
2) /dev/md/stripe2 ( level 0 stripe )
/dev/sdd1 , /dev/sde1
# mdadm --create /dev/md/stripe2 -l 0 -n 2 /dev/sdd1 /dev/sdc1
3) /dev/md/level01 ( level 1 mirror)
/dev/md/stripe1 , /dev/md/stripe2
# mdadm --create /dev/md/level01 -l 1 -n 2 /dev/md/stripe1 /dev/md/stripe2
4) 레이드 확인
# ls -l /dev/md*
# cat /proc/mdstat
# mdadm --detail /dev/md/level01
5) 파일 시스템 생성
# mkfs -t ext4 /dev/md/level01
- 확인
# file -s /dev/md125
6) 마운트
# mkdir /raid/level01
# mount /dev/md/level01 /raid/level01
7) 장치 제거
1) 마운트 해제
# umount /dev/md/level01
2) 장치 멈춤
# mdadm --stop /dev/md/level01 <---------- stripe 를 묶고있는 mirror 부터 해제
# mdadm --stop /dev/md/stripe1
# mdadm --stop /dev/md/stripe2
------- 장치를 영원히 사용하지 않겠다 ---------
# mdadm --zero-superblock /dev/sdb1
# mdadm --zero-superblock /dev/sdc1
# mdadm --zero-superblock /dev/sdd1
# mdadm --zero-superblock /dev/sde1
8) 오토 마운트 설정
ex) /etc/fstab : 리눅스 파일 시스템의 마운트 설정 정보 파일
# vi /etc/fstab <----------- 이곳에 정보 입력
/dev/md/level01 /raid/level01 ext4 defaule 0 0
------------------ -------------- ------ --------- - -
1 2 3 4 5 6
1) 장치 파일
2) 마운트 포인트
3) 파일 시스템 <-------- 위치 /proc/filesystems
4) 옵션
- defaults : rw + nouser + auto + exec + suid
- 옵션을 여러개 쓴다면 , <---- 를사용해서 여러개를 쓸수있다
5) dump 가능 여부
- 0 : dump 불가
- 1 : dump 가능
6) file check option
- 0 :
- 1 :
- 2 :
'Linux > Linux (CentOS)' 카테고리의 다른 글
FTP & 접근제어 (0) | 2018.07.20 |
---|---|
확장된 파일 시스템 (0) | 2018.07.17 |
Network (0) | 2018.07.13 |
방화벽 & 서비스 (0) | 2018.07.12 |
MariaDB ( SQL ) (0) | 2018.07.11 |