💡 5주차에는 리눅스에서 다루는 파일시스템과 하드디스크의 구조에 대해 알아보았다. 또한 하드디스크 1개를 추가해보는 실습, 여러 개의 하드디스크를 하나처럼 사용하는 RAID 디스크관리에 관한 다양한 실습을 해보았다.
-> RAID5는 RAID0의 공간효율성과 RAID1의 데이터 안정성을 가지고 있으며 하드디스크에 오류가 발생했을 때 '패리티(parity)'를 이용하여 패리티 비트를 각각의 하드디스크에 분산시켜서 저장하는데 이를 통해 데이터 복구를 할 수 있습니다. 하드디스크 2개가 고장나면 복구를 못한다는 단점이 있지만 데이터 안정성이 보장된다는 점이 강점이라고 생각합니다. 또한 어느 정도의 결합허용을 제공한다는 장점을 지니고 있어 저는 RAID5가 적절하다고 생각했습니다.
설치과정🔽
1. 하드디스크 3개 준비
2. 하드디스크 파티션하기(sdb, sdc, sdd 동일한 방법으로)
3. 포멧하고 파일시스템 생성 -> 마운트할 디렉토리 생성 및 마운트 -> 장치상태 확인(df
)
4. 구축한 RAID5 확인
5. 부팅 시 자동으로 마운트되도록 설정
: vi 편집기나 nano 편집기를 통해 설정가능
▪ 플래터(Platter) : 자기 장치
▪ 섹터(Sector) : 읽고 쓰는 단위(매우 작음)
▪ 자기 헤드(Magnetic head)
▪ 스윙 암(Swing arm)
▪ 디바이스 드라이버가 데이터의 읽고 쓰기에 필요한 정보를 하드디스크에 전달 (섹터 번호, 섹터 갯수, 섹터 종류 등)
▪ 스윙암을 이동시키거나 플래터를 회전시켜 접근하고자 하는 섹터 위에 자기 헤드 위치
▪ 데이터를 읽거나 쓰기
▪ 읽을 경우에는 하드디스크의 읽기 처리가 완료
✔ RAID
: 여러 개의 하드디스크를 하나의 하드디스크처럼 사용하는 방식
✔ RAID 레벨
LinearRAID
-최소 2개 이상의 하드디스크 사용
-2개 이상의 하드디스크를 1개의 볼륨으로 사용
-앞 디스크부터 순서대로 저장
-공간효율성 100% (비용저렴)
RAID0
-최소 2개 이상의 하드디스크 필요
-모든 디스크에 동시에 저장(스트라이핑 striping 방식)
-공간효율성 100% (비용저렴)
-일부 디스크에 문제 발생하면, 데이터를 사용할 수 없음(신뢰성 낮음)
-빠른 성능을 요구하되, 전부 잃어버려도 큰 문제가 되지 않는 데이터 사용시 적당
RAID1
-최소 2개 이상의 하드디스크 필요
-하나의 데이터를 두 군데의 하드디스크에 저장(미러잉 Mirroring)
-데이터 저장에 2배의 용량 필요(비용 2배, 공간효율 낮음)
-'하드디스크 개수/2' 의 공간 사용
-결함허용 제공(신뢰성 높음)
-저장속도(성능)는 변함 없음
-'중요한 데이터'를 저장하기에 적절(백업용)
RAID5
-최소 3개 이상의 하드디스크 필요
-RAID1의 데이터 안정성 + RAID1의 공간 효율성
-하드디스크 오류 발생시, 패리티(Parity)를 이용하여 데이터 복구
-어느 정도의 결함허용 제공, 저장공간의 효율도 좋음
-'하드디스크 개수-1' 의 공간 사용
-하드디스크 2개가 고장나면 복구 못함 -> 이를 보완한 것 : RAID6
✔ 다양한 RAID 구성
ls -l /dev/sd*
fdisk
명령어 사용mdadm --create
명령어 사용mdadm --detail --scan
mkfs
명령어 사용mkdir
명령어 사용mount
명령어 사용df
명령어mdadm --detail
명령어 사용vi /etc/fstab
nano /etc/fstab
/etc/fstab
는 파일시스템 정보를 저장하고 있으며, 리눅스 부팅시 마운트정보를 저장하고 있음Mark Set
이라는 글귀가 나오면 방향키나 마우스 스크롤로 텍스트 블록을 지정할 수 있다는 것을 알 수 있었다.플러스(+)
: 그림과 함께 하드디스크의 구성요소에 대한 설명을 들어서 이해하는데 도움이 되었다. 하드디스크는 스윙암을 이동시키커나 플래터를 회전시켜서 접근하고자 하는 섹터 위에 자기 헤드를 위치시켜 데이터를 읽거나 쓴다는 점이 신기했다. '하드디스크'라는 용어는 자주 들어봤지만 어떻게 구성되어있고 어떤 동작을 하는지는 알지 못했는데 수업을 통해 배워갈 수 있어서 좋았다. 또한 리눅스의 하드디스크 관리 방식인 RAID와 관련된 다양한 실습을 해보는 새로운 경험을 할 수 있었다:-)
마이너스(-)
: 여러 개의 RAID를 구성해보는 실습에서 터미널에 타이핑을 할때 띄어쓰기를 잘못해서 문제가 생긴 것을 인지하기까지 분명 텍스트 상으로는 동일한데 뭐가 문제지 하며 답답함을 느꼈다. 앞으로 리눅스 실습을 할때는 띄어쓰기에 주의해야겠다고 생각했다. 또한 vi 편집기를 다룰 때와 비슷하게 이번에 nano 편집기를 다룰 때도 사용법이 익숙하지 않아 어려움을 겪기도 했다. 무작정 사용법을 암기하기보다는 자주 보고 다뤄보면서 익숙해질 수 밖에 없는 것 같다.
!!!!!
: 최근에 한 실습 중에 이번 주 실습이 제일 시간이 많이 소요되고 여러가지를 한 것 같다. 실습과정에서 문제가 발생했을때 당황스럽기는 했지만 구글링을 통해 해결하거나 찬찬히 문제가 발생한 부분을 살펴보며 해결해나갈 수 있어서 다행이었다. 저번 주와 비교했을때 개인적으로 이번 실습은 어렵게 느껴졌지만 그만큼 새로 알게된 중요한 내용도 많았던 것 같다.