디스크 관리

Linux/Linux (CentOS) 2018. 7. 16. 18:42

디스크 관리




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

설정

트랙백

댓글