논리 디스크와 물리 디스크
물리적 디스크의 문제점
: 물리 디스크에서 저장된 파일을 찾으려면 인덱스값이 필요하다.
그런데 각 디스크마다 개별적인 인덱스 값을 갖기에 다른 물리 디스크의 인덱스값을 모른다.
~> 자신 이외의 물리디스크를 참조할 수 없다.
ex) 만약 1TB 물리 디스크가 3개 있을 때 2TB의 단일 파일을 저장할 수 없다.
: 논리 디스크는 서로 다른 물리 디스크의 인덱스값을 하나로 묶어서 사용한다.
- 물리 디스크 : 기본 데이터타입
- 논리 디스크 : 참조 데이터타입
| RAID넘버 | 명칭 |
| RAID 0 | 스트라이핑 |
| RAID 1 | 미러링 |
RAID 구성
물리 디스크를 논리적으로 인식 ~> 논리 디스크
논리 디스크를 묶어서 사용한다. ~> 동작 인터페이스 단계
(인덱스를)
디스크 ~> RAID 컨트롤러 ~> 인터페이스 컨트롤러
하드웨어 기반의 RAID 구성 : Provisioning
윈도우에서는 메모리 계산을 1000mb씩
리눅스에서는 메모리 계산을 1024mb씩 한다.
● 실습 (mount)
목표
: 디스크를 직접 할당하고, 폴더를 만들어 새로 만든 폴더에 마운트
현재 C7 1개의 물리 디스크 :sda
- : 동작방식 : h : ATA or IDE : 병렬 연결 방식
s : SCSI or SATA : 직렬 연결 방식
-(d) : Disk
-(a) : 물리적으로 인식된 1번째 디스크
● 디스크 생성

: 0.1G 크기의 디스크를 4개 생성하였다.
* 접속하여 시스템에서 인식한 디스크 확인
- 시스템에서 인식한 디스크를 출력 : fdisk -l
/dev ~> 운영체제가 인식한 모든 디바이스
[root@localhost ~]# fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b5b49
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 83886079 40893440 8e Linux LVM
Disk /dev/sdb: 106 MB, 106954752 bytes, 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 106 MB, 106954752 bytes, 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdd: 106 MB, 106954752 bytes, 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sde: 106 MB, 106954752 bytes, 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-root: 39.7 GB, 39720058880 bytes, 77578240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
출력 결과
sda / sdb / sdc / sdd / sde : 시스템에서 인식한 디스크
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 83886079 40893440 8e Linux LVM
- : 논리적 파티션의 번호
- 현재 사용 가능한 디스크 목록 출력 : df

출력 결과 : 시스템에서는 디스크를 인식하였지만,
운영체제는 자신이 사용 가능한 저장소로 인식하지 않았다.
~> 인식하도록 설정 ~> 파티셔닝
● 디스크 파티셔닝
현재 운영체제에서 새로 생성한 sdb / sdc / sdd / sde 를 사용 가능한 디스크로 인식하게 설정~> 파티셔닝
1. /dev/sdb 디스크 파티셔닝
명령어 : fdisk 대상 디스크
: fdisk /dev/sdb

: m을 입력하면 설정할 수 있는 리스트가 출력된다.
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):
p - 기본
d - 삭제
n - 새로운
p - 기본
t - 변환
w - 저장
: 우리가 할 작업은 새로운 파티션을 추가하는 것이기에 n을 입력한다.

~> n을 입력하니 기본 디스크로 설정할 것인지, 확장 디스크로 설정할 것인지 나온다.
primary : 기본 파티션 : 모든 디스크는 최대 4개의 기본 파티션을 가질 수 있다.
extended :t확장 파티션 : 기본 파티션보다 많은 수의 파티션으로 나눌 때 사용한다.
우리는 확장 파티션으로 파티셔닝할 것이기에 p를 입력

: sdb 디스크의 전체 영역을 2048 ~ 208895까지 총 101MB를 지정했다.
- 시스템 ID 설정
파티션이 사용할 시스템ID 선택
초기값 : 83 : Linux
레이드에서 사용할 시스템 ID : fd : Linux raid auto
저장 종료:w
t를 입력하여 시스템 id설정

: 우리가 설정할 시스템 id는 Linux raid auto이니 fd를 입력후 w로 저장하고 종료
● 디스크 포맷
: sdb1의 파일 시스템을 ext4로 포맷.
- 현재 사용하고 있는 파일 시스템 확인 : df -T
- 타입을 사이즈로 변환해서 확인 : df -h
명령어 : mkfs -t ext4 /dev/sdb1

blkid : 시스템이 인식하고 있는 장치의 고유 식별 번호(시리얼번호)

: /dev/sdb1의 type이 ext4인 것을 확인할 수 있다.
● Mount
- 리눅스는 모든 장치를 / 밑에 붙여서 사용한다.
--------------------------- : mount
- 마운트 대상 디렉터리 : /share/sdb1_mount
- 디렉터리 생성 : mkdir -p /share/sdb1_mount
sdb1_mount 디렉토리를 sdb1에 마운트
명령어 : mount -t ext4 /dev/sdb1 /share/sdb1_mount
확인


: 마운트 대상 파일로 가보니 lost + fount 디렉토리가 있다.
--------------- : 각 디스크(파티션)의 휴지통 // 디스크의 root에 존재한다.
마운트를 실습 해보았으니 umount하고 다시 파티셔닝한 뒤 레이드 설정

n : 파티션 생성
p : 기본 파티션
t : 시스템 id 설정
fd : linux raid auto
w : 저장
나머지 sdc / sdd / sde도 똑같이 설정..
Disk /dev/sdb: 106 MB, 106954752 bytes, 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf7ce63db
Device Boot Start End Blocks Id System
/dev/sdb1 2048 208895 103424 fd Linux raid autodetect
Disk /dev/sdc: 106 MB, 106954752 bytes, 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5aae6277
Device Boot Start End Blocks Id System
/dev/sdc1 2048 208895 103424 fd Linux raid autodetect
Disk /dev/sdd: 106 MB, 106954752 bytes, 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x382341e0
Device Boot Start End Blocks Id System
/dev/sdd1 2048 208895 103424 fd Linux raid autodetect
Disk /dev/sde: 106 MB, 106954752 bytes, 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4df61cfe
Device Boot Start End Blocks Id System
/dev/sde1 2048 208895 103424 fd Linux raid autodetect
● 실습 (RAID) : 소프트웨어 기반
* RAID를 사용할 때의 가상디스크는 MD : meta disk
------- : 사용되기 전의 순수한 데이터
md를 관리하기 위한 유틸리티 : mdadm
목표
: sdb1과 sdc1을 묶어서 하나의 디스크를 생성
(RAID 구성) (md0)
RAID 0 모드 : 스트라이핑(stripping) 모드 : 동작레벨 0
명령어 : mdadm
논리 디스크 md0 생성
명령어 : mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
---------- = -C ------------ = -l 5
--------------------- = -n 2

RAID 묶은거 삭제하는 법
: mdadm --remove /dev/md1
: mdadm --stop /dev/md1
포맷
md0의 파일 시스템 ext4로 설정
명령어 : mkfs -t ext4 /dev/md0

마운트
명령어 : mount -t ext4 /dev/md0 /share/sdb1_mount
mdstat ~> /proc/mdstat
------- : 프로세스 정보를 담고 있다.
cat /proc/mdstat

● 연습 문제
* RAID 0 + 1

목표
sdb, sdc : RAID 0
sdd, sde : RAID 0
: 두개의 RAID 0 를 RAID 1 로 논리 디스크를 생성
md0 생성 ~> RAID 0

md1 생성 ~> RAID 0
...
md5 생성 ~> RAID 1

확인

* 자동 마운트 설정

: md5의 UUID : e31ff247-e867-4987-b3da-31f5266d0f07
자동 마운트 설정 파일 : /etc/fstab

명령어
: [논리 디스크 경로] [마운트 대상 경로] %t [파일 시스템] %t [마운트 옵션] [백업] [fsck 검사 순서]
패리티(Parity)
: 디스크 장애 발생 시 손상된 데이터를 재구축하는데 필요한 계산된 값
● 연습 문제 (RAID5)

목표
: 디스크 sdb / sdc / sdd / sde를 논리 디스크 md5 로 RAID 5를 구축
md 5 생성
명령어 : mdadm -C /dev/md5 -l 5 -n 4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
md 5 포맷
명령어 : mkfs -t ext4 /dev/md5
md 5 마운트
명령어 : mount -t ext4 /dev/md5 /share/sdall_mount
확인
lsblk

df

* 자동 마운트 설정
UUID 확인

md5의 UUID : 65c0626f-b942-4e39-a046-7886e50b5f0f
자동 설정 파일 경로 : /etc/fstab

'Linux' 카테고리의 다른 글
| DISK QUOTA (0) | 2023.06.22 |
|---|---|
| SMB(삼바) (0) | 2023.06.20 |