Today I Learn - 16

이정빈·2021년 3월 3일
0

클라우드 엔지니어

목록 보기
17/53
post-thumbnail

저장소 관리

디스크 구조

하드디스크
물리적인 장치
자기(Magnetic)을 사용한 데이터 기록
주요 부품
플래터(Platter): 실제 전/자기를 사용하여 데이터를 기록하는 부분
스핀들(Spindle): 모터, 플래터를 회전시킴 (7200rpm, 5400rpm…)
헤드(Head): 플래터의 데이터를 읽거나 기록하는 장치. 디스크의 각 플래터 위 아래에 모두 있음. 디스크의 안쪽/바깥쪽으로 이동하며 데이터의 위치에 접근
액추에이터(Actuator): 헤드의 움직임을 제어하는 부분
하드디스크의 기록단위
데이터 최소 단위: 비트(Bit) → 바이트(Byte)
단위의 접두사: K(kilo), M(mega), G(giga), T(tera) → X 1000
정확한 용량 단위 : Ki(kibi), Mi(Mibi), Gi(Gibi), Ti(Tibi) → X 2^10
하드디스크는 ‘블록 장치’ : 데이터를 블록 단위로 읽고 씀
일반적인 하드디스크의 최소 입출력단위 : 섹터 (512 Byte)
섹터(Sector) : 헤드가 고정된 상태에서 플래터의 한 면에 512Byte만큼 사용하기 위해 플래터를 살짝 회전한 만큼의 크기
트랙(Track) : 헤드가 고정된 상태에서 플래터의 한 면에서 플래터를 한바퀴 회전했을때 접근할 수 있는 영역
실린더(Cylinder) : 각 플래터의 같은 위치의 위/아래면을 모두 모아놓은 영역
섹터의 주소 지정 방식
CHS 주소 방식
물리적인 구조를 직접 지정하는 방식
C(Cylinder), H(Head), S(Sector) 위치를 지정
현재는 잘 사용하지 않음 - 디스크 용량의 제한, 현재 디스크의 구조를 반영할 수 없음
LBA 주소 방식
논리적인 주소를 지정하는 방식
물리적인 구조를 신경쓸 필요가 없음. 디스크 내 컨트롤러에서 알아서 처리
순차 번호를 사용 : LBA 0 ~ …

파티션(Partition)

물리적으로 하나인 디스크를 논리적으로 분리하여 사용
파티션의 장점
OS 및 데이터 영역 분리 관리가 가능
다중 OS 사용 가능
Swap 용도로 사용이 가능
공간의 체계적인 구성

파티션의 종류

MBR (Master Boot Record)
디스크의 파티션을 구성하기 위한 방식
디스크의 1개의 섹터에 디스크 파티션에 대한 내용을 저장
Boot Code + Partition Table + Signature = 512Byte
Boot Code: 파티션으로 부팅을 시키기 위해 필요한 실행코드
Partition Table: 실제 디스크의 파티션 구조 정보(64 Byte)
Signature: MBR을 나타내는 특징적인 데이터
Partition Table
파티션 정보를 저장
총 4개의 파티션 정보를 저장 - 최대 4개 파티션
각 파티션 별 테이블 크기 : 16Byte
부트 가능 플래그 (1Byte)
파티션의 유형 (1 Byte)
파티션의 시작 주소, 파티션의 끝 주소 (CHS) (각 3 Byte)
파티션의 시작 주소, 파티션의 크기 (LBA) (각 4 Byte)
파티션의 섹터 주소의 범위 : 2^32개 섹터 사용 → 최대 약 43억개 섹터사용가능 → 최대 사용가능한 디스크의 크기 2 TiB
MBR은 BIOS와 연관된 기술
MBR은 반드시 LBA 0 번 사용
확장 파티션 : MBR 특성상 최대 4개까지만 파티션이 생성 가능 - 파티션의 유형을 주(Primary) 파티션과 확장(Extended) 파티션으로 구분

GPT (GUID Partition Table)

디스크의 파티션을 구성하기 위한 방식
디스크의 1개의 섹터를 Protective MBR로 사용 + 1개 섹터를 GPT 헤더(Header)
파티션 테이블을 별도로 저장 : 1개의 파티션 당 128 Byte를 사용 X 파티션 128개 사용 가능
GPT 정보의 백업이 존재 : LBA0~33 까지의 백업이 디스크의 가장 마지막에 백업으로 위치
파티션에서 사용할 수 있는 디스크의 크기 확장 : LBA 주소의 크기 8Byte - 이론상 최대 8ZB(Zeta Byte)
GPT는 EFI(Extensible Firmware Interface)
GPT 파티션은 운영체제에서 GPT 파티션을 지원할 경우 사용가능 (윈도우XP 이후, 현재 대부분의 리눅스)
GPT 파티션으로 구성된 디스크를 부팅용도로 사용하려면 EFI 방식의 펌웨어를 사용하여야 함

============================================================

시스템의 부팅 과정

전원 인가
BIOS(Basic Input Output System, = 펌웨어, Firmware)가 동작
POST(Power On Self Test) 수행
BIOS는 CMOS(complementary metal–oxide–semiconductor, 설정 저장)의 설정값을 읽어들여서 시스템을 구동
현재 연결된 디스크를 파악하고, MBR을 통해 부팅 가능한 파티션을 확인
해당 파티션의 VBR(Volume Boot Record) 정보를 참고하여 운영체제 부팅

========================================================

리눅스 시스템에서 디스크 저장소 장치 추가

시스템 구동 중 장치 추가
Plug & Play
Hot Plugging
시스템의 다운타임 없이 장치를 추가할 수 있는 기능
장치의 연결 인터페이스와 관련

디스크 연결 인터페이스

E-IDE(P-ATA) : 구형 ATA 규격에서 사용하는 연결 방식. 핫 플러깅 지원하지 않음. 연결 가능한 디스크의 개수가 최대 4개로 제한 (메인보드 연결 포트에 따라 Primary/Secondary) (한 케이블에 연결된 두 디스크를 각각 Master/Slave)
S-ATA: 현재 대부분의 데스크탑 시스템 등에서 사용한 인터페이스, 핫플러깅 지원. 연결 가능한 디스크의 개수는 메인보드의 SATA 포트의 개수에 영향
SCSI(Small Computer System Interface) : 핫 플러깅 지원. 여러 대의 장치를 한꺼번에 연결 가능
SA-SCSI(SAS): Serial-Attached SCSI. 현재 서버시스템에서 사용하는 주요 인터페이스.

저장장치 파일이름

리눅스 시스템은 모든 장치를 파일로 관리 - 디스크는 블록 장치 파일
장치 파일은 /dev 에 있음
디스크 장치는 파일 유형에서 블럭으로 조회 (ls -l /dev | grep ‘^c’)
장치 파일의 이름은 연결 인터페이스, 장치종류 등과 관련
맨 첫번째 글자 : 연결 인터페이스와 관련
s : SATA, SCSI
h : IDE (현재는 IDE도 s를 사용)
v : 가상화 시스템에서 사용하는 가상디스크
두 번째 글자: 장치의 종류
d : 디스크 장치
r : 광학디스크
세 번째 글자: 장치 순번
a,b,c,d.... : 디스크 장치의 순번
0,1,2,3…. : 광학디스크 장치의 순번
네 번째 글자: 파티션 번호
1,2,3…. : 파티션 번호

리눅스 시스템에서 추가한 저장소 장치 인식 방법

/sys/class/scsi_host/host# (#은 0부터 시작하는 번호)
해당 파일은 링크로 연결되어 있음
링크 연결되어 있는 디렉토리 내에 scan 파일을 사용하여 장치를 인식
echo ‘- - -’ 명령어를 사용하여 scan 파일로 출력을 리다이렉트
echo ‘- - -’ > /sys/class/scsi_host/host0/scan
echo ‘- - -’ > /sys/class/scsi_host/host1/scan
echo ‘- - -’ > /sys/class/scsi_host/host2/scan

==========================================================

파티셔닝(Partitioning)

디스크의 파티션 구조를 생성하는 작업
MBR / GPT 모두 생성가능
사용할 도구

gparted (GUI)

별도로 설치가 필요함
yum -y install epel-release
yum -y install gparted
fdisk : CLI 명령어, MBR 방식의 파티션 생성, 대화형 설정방식
gdisk : CLI 명령어, GPT 방식의 파티션 생성, 대화형 설정방식
parted : CLI 명령어, 비대화형으로 파티셔닝 가능
kickstart: 네트워크를 통한 리눅스 자동설치

fdisk

MBR 기반의 시스템에서 오래동안 사용해 온 파티셔닝 도구
기본적으로 MBR 파티션을 생성
대화형 설정
fdisk -l : 파티션 구성 확인
fdisk <장치파일명> : 장치 파티셔닝 수행
d delete a partition : 파티션 개별 삭제
l list known partition types : 사용가능한 파티션의 종류 목록 확인
n add a new partition : 새로운 파티션 생성
p print the partition table : 현재 구성된 파티션 정보 확인
q quit without saving changes : 저장하지 않고 종료
t change a partition's system id : 파티션 종류 변경 (L: 목록확인)
w write table to disk and exit : 저장하고 종료

gdisk

GPT 기반의 시스템에서 오래동안 사용해 온 파티셔닝 도구
기본적으로 GPT 파티션을 생성
대화형 설정
gdisk -l : 파티션 구성 확인
gdisk <장치파일명> : 장치 파티셔닝 수행
d delete a partition : 파티션 개별 삭제
l list known partition types : 사용가능한 파티션의 종류 목록 확인
n add a new partition : 새로운 파티션 생성
p print the partition table : 현재 구성된 파티션 정보 확인
q quit without saving changes : 저장하지 않고 종료
t change a partition's system id : 파티션 종류 변경 (L: 목록확인)
w write table to disk and exit : 저장하고 종료

사용중인 디스크의 파티션 정보 변경시 변경사항 적용
사용중인 디스크의 파티션 정보는 이미 시스템에서 인식하고 있는 상태
변경사항 저장시(w) 바로 시스템에 인식되지 않고 대기. 경고 메시지 출력
partprobe 명령어를 사용하여 변경된 파티션 정보를 시스템에 전달
partprobe
partprobe <변경된 장치명>
ex) # partprobe /dev/sdb

profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글