5주차 CSM_실습일지📝

ᴶᴬᴱᵞᴼᴼᴺ·2021년 4월 3일
1

컴퓨터 시스템관리

목록 보기
5/15
post-thumbnail

💡 5주차에는 리눅스에서 다루는 파일시스템과 하드디스크의 구조에 대해 알아보았다. 또한 하드디스크 1개를 추가해보는 실습, 여러 개의 하드디스크를 하나처럼 사용하는 RAID 디스크관리에 관한 다양한 실습을 해보았다.

실습과제

📌Server(b)에 LinearRAID, RAID0, RAID1, RAID5 중 자신이 생각하기에 가장 적절한 RAID를 선택하여 구축해보기

✔Server(b)에 RAID5 구축함

-> RAID5는 RAID0의 공간효율성과 RAID1의 데이터 안정성을 가지고 있으며 하드디스크에 오류가 발생했을 때 '패리티(parity)'를 이용하여 패리티 비트를 각각의 하드디스크에 분산시켜서 저장하는데 이를 통해 데이터 복구를 할 수 있습니다. 하드디스크 2개가 고장나면 복구를 못한다는 단점이 있지만 데이터 안정성이 보장된다는 점이 강점이라고 생각합니다. 또한 어느 정도의 결합허용을 제공한다는 장점을 지니고 있어 저는 RAID5가 적절하다고 생각했습니다.

설치과정🔽
1. 하드디스크 3개 준비


2. 하드디스크 파티션하기(sdb, sdc, sdd 동일한 방법으로)


3. 포멧하고 파일시스템 생성 -> 마운트할 디렉토리 생성 및 마운트 -> 장치상태 확인(df)

4. 구축한 RAID5 확인

5. 부팅 시 자동으로 마운트되도록 설정
: vi 편집기나 nano 편집기를 통해 설정가능

새로 배운 내용

✔ 리눅스의 파일 시스템

  • 디렉터리 Directory
    : 파일(또는 디렉터리)를 보관하는 특수한 파일
    다른 디렉터리에 존재하는 파일 이름은 동일해도 됨(접근가능), BUT 동일한 디렉터리 안에 같은 이름의 파일은 안됨!
  • 트리 구조
  • 파일 시스템의 종류
    : ext4, XFS, Btrfs 등
    -> 저장장치의 데이터 구조, 처리하는 프로그램이 다름
    -> 동일한 시스템 콜을 호출하여 통일된 인터페이스로 접근가능
  • 리눅스 파일시스템

✔ 하드디스크


▪ 플래터(Platter) : 자기 장치
▪ 섹터(Sector) : 읽고 쓰는 단위(매우 작음)
▪ 자기 헤드(Magnetic head)
▪ 스윙 암(Swing arm)

- 데이터 읽기 쓰기의 동작방식 -

▪ 디바이스 드라이버가 데이터의 읽고 쓰기에 필요한 정보를 하드디스크에 전달 (섹터 번호, 섹터 갯수, 섹터 종류 등)
▪ 스윙암을 이동시키거나 플래터를 회전시켜 접근하고자 하는 섹터 위에 자기 헤드 위치
▪ 데이터를 읽거나 쓰기
▪ 읽을 경우에는 하드디스크의 읽기 처리가 완료

✔ 디스크 관리

  • SATA : 하드디스크 또는 광학 드라이브와 데이터 전송을 주요 목적으로 만든 컴퓨터 버스
    -> 속도 빠르고 케이블 길이가 짧다
  • SCSI : 컴퓨터에 주변기기를 연결할 때 직렬방식으로 연결하기 위한 표준
    -> 속도 느리고 케이블 길이가 길다
  • 파티션 : 1개의 하드디스크는 4개의 Primary 파티션까지 설정 가능
    (5개의 파티션 설정할 경우 : 3개의 Primary 파티션 & 1개의 Extended 파티션을 설정한 뒤, Extended 파티션을 2개 이상의 Logical 파티션으로 설정)

✔ RAID

: 여러 개의 하드디스크를 하나의 하드디스크처럼 사용하는 방식

  • 비용, 신뢰성, 성능 조절의 효과
  • 하드웨어 RAID (하드웨어 제조업체에서 여러 개의 하드디스크를 연결한 장비를 만들어서 공급)
  • 소프트웨어 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 구성

  1. 각 RAID 레벨에서 필요로 하는 하드디스크 확인 후 직접 추가
    🔽디스크를 추가하면 가상머신 상단에 아래 이미지와 같이 디스크 형태의 그림이 생김
  2. 장치 확인 : ls -l /dev/sd*
  3. 하드디스크 파티션 : fdisk 명령어 사용
  4. RAID 생성 : mdadm --create 명령어 사용
  5. RAID 확인 : mdadm --detail --scan
  6. 포멧, 파일시스템 생성 : mkfs 명령어 사용
  7. 마운트 할 디렉터리 생성 : mkdir 명령어 사용
  8. 마운트 : mount 명령어 사용
  9. 장치 상태 확인 : df 명령어
  10. 구축한 RAID 확인 : mdadm --detail 명령어 사용
  11. 부팅시 자동으로 마운트
    ▪ vi 편집기로 할 경우 : vi /etc/fstab
    ▪ nano 편집기로 할 경우 : nano /etc/fstab
    -> /etc/fstab 는 파일시스템 정보를 저장하고 있으며, 리눅스 부팅시 마운트정보를 저장하고 있음

문제 발생 및 해결방안

  • mdadm 버그에 대한 추가설정을 하는 부분에서 nano 편집기에 적혀있는 텍스트 4줄을 통째로 잘라내기하여 다른 곳에 붙여넣기를 해야하는 과정이 있었다. 처음에는 마우스로 드래그하여 4줄을 선택한 후 ctrl+K를 눌러 잘라내기를 시도해보았으나 계속 한줄만 잘라내기 적용이 되고 나머지 3줄은 적용되지 않았다.
    ✍nano 편집기에 대하여 구글링해본 결과, nano 편집기에서 파일 내용 중 텍스트 일부를 선택하려면 먼저 글자 선택을 시작하려는 위치에 커서를 놓고 M-A 단축키(윈도우에서는 Alt + a, 맥에서는 ESC, a)를 눌러 화면아래 상태창에 Mark Set 이라는 글귀가 나오면 방향키나 마우스 스크롤로 텍스트 블록을 지정할 수 있다는 것을 알 수 있었다.

참고할 만한 내용

회고

  • 플러스(+)
    : 그림과 함께 하드디스크의 구성요소에 대한 설명을 들어서 이해하는데 도움이 되었다. 하드디스크는 스윙암을 이동시키커나 플래터를 회전시켜서 접근하고자 하는 섹터 위에 자기 헤드를 위치시켜 데이터를 읽거나 쓴다는 점이 신기했다. '하드디스크'라는 용어는 자주 들어봤지만 어떻게 구성되어있고 어떤 동작을 하는지는 알지 못했는데 수업을 통해 배워갈 수 있어서 좋았다. 또한 리눅스의 하드디스크 관리 방식인 RAID와 관련된 다양한 실습을 해보는 새로운 경험을 할 수 있었다:-)

  • 마이너스(-)
    : 여러 개의 RAID를 구성해보는 실습에서 터미널에 타이핑을 할때 띄어쓰기를 잘못해서 문제가 생긴 것을 인지하기까지 분명 텍스트 상으로는 동일한데 뭐가 문제지 하며 답답함을 느꼈다. 앞으로 리눅스 실습을 할때는 띄어쓰기에 주의해야겠다고 생각했다. 또한 vi 편집기를 다룰 때와 비슷하게 이번에 nano 편집기를 다룰 때도 사용법이 익숙하지 않아 어려움을 겪기도 했다. 무작정 사용법을 암기하기보다는 자주 보고 다뤄보면서 익숙해질 수 밖에 없는 것 같다.

  • !!!!!
    : 최근에 한 실습 중에 이번 주 실습이 제일 시간이 많이 소요되고 여러가지를 한 것 같다. 실습과정에서 문제가 발생했을때 당황스럽기는 했지만 구글링을 통해 해결하거나 찬찬히 문제가 발생한 부분을 살펴보며 해결해나갈 수 있어서 다행이었다. 저번 주와 비교했을때 개인적으로 이번 실습은 어렵게 느껴졌지만 그만큼 새로 알게된 중요한 내용도 많았던 것 같다.

0개의 댓글