728x90
Disk Structure

Disk Structure

  • Magnetic Disk : HDD 등
    • Transfer Rate : 저장 장치 - 커뮤퍼 사이의 데이터 전송 속도
    • Positioning Time(random-access time) : 디스크 암이 목표 실린더에 도달하는 시간(seek time)과 목표 섹터에 도달하는 시간(rotational latency)
    • head crush : 디스크 암과 디스크가 맞닿는 현상
  • Access Latency = Average access time = 평균 탐색 시간 + 평균 지연
  • Average I/O time = average access time + (transfer amount / transfer rate) + controller overhead

  • Logical block
    • 디스크는 1차원의 logical block의 배열로 관리
    • 논리적 주소가 물리적 주소를 의미하지는 않음
    • garbage collector : 쓰레기 값이 저장된 block을 초기홫

Disk Scheduling

  • seek time의 최소화
  • request queue에 실린더 위치가 순서대로 입장
    • ex) 98, 183, 37, 122, 14, 124, 65, 67
    • head 위치는 53이라고 가정
  • FCFS : 큐에 들어오는 순서대로 접근
  • SSTF : 현 위치에서 seek time이 가장 짧은 위치로 먼저 접근
    • SJF와 유사 : starvation 문제가 생길 수 있음
  • SCAN : 디스크 암이 logical array의 양 끝 번갈아 왕복하며 처리
    • elevator algorithm이라고도 부름
    • 디스크 암과 실린더 위치에 따라 장시간 대기해야 하는 경우가 생길 수 있음
  • C-SCAN
    • 실린더의 처음부터 끝까지 순서대로 처리
    • 실린더 끝까지 탐색하면 다시 처음으로 이동한 뒤 끝까지 이동하면서 처리
    • 실린더 양 끝을 왕복하는 SCAN의 단점이 어느정도 해결
  • C-LOOK
    • Look : 큐의 최대/최소점에 도달하면 실린더는 반대 방향으로 탐색
    • C-Look : Look으로 동작하되, C-SCAN과 같이 큐 최대점 도달 시 다시 최소점으로 이동한 후 처리

Disk Management

  • Low-Level Formatting
    • 물리적 포맷이라고도 함
    • 디스크를 R/W 동작이 가능한 섹터로 분할
    • 각 섹터는 정보, 데이터, ECC(Error Correction Code)가 저장
  • 파티션 : 디스크를 논리적 단위로 분할
    • 논리적 포맷 혹은 "파일 시스템을 만든다" 라고도 함
    • 효율성을 위해 파일은 클러스터 단위로 처리 (디스크 > 블록, 파일 > 클러스터)
  • 부팅 과정
    • 롬에 저장된 BootStrap이 부팅 시 호출됨
    • 디스크 0번 섹터(MBR)의 프로그램이 부트스트랩을 호출하는 기능을 함(Bootstrap Loader)

  • Swap Space management
    • page 파일을 만들어 관리하거나, swap 파티션을 할당하여 관리
    • swap map : 커널은 swpap 사용 방식을 추적
    • swap 공간이 없다 = 메모리 가용량이 없음 >> process kill or crash

RAID

  • 저가의 디스크를 다수 연결하여 고성능 구현 (scale - out)
    • mean time to failure : 고장 확률이 높아짐
    • mean time to repair : 추가적인 고장 확률이 높음
  • 다수의 디스크를 병렬로 기록 시 : 읽는 속도가 증가
  • ex. 디스크의 mean time to failure = 100000, mean time to repair = 10
    • mean time to data loss = 100000^2 / ( 2 * 10 ) = 500 * 10 ^ 6 (약 57000년)
    • 실제로는 저장장치가 완전히 독립적이지 않으므로 이보다는 짧아짐

  • Disk striping : 여러 개의 저장 장치를 하나의 단위로 취급
  • RAID를 통해 성능을 높이거나, 저장장치의 신뢰성을 높일 수 있음
  • RAID 0
    • 큰 데이터를 각 저장장치로 분산
    • 디스크 중 하나가 고장나면 전체 데이터가 손실
  • RAID 1
    • Mirroring 혹은 Shadowing으로 호칭
    • 각 디스크의 복사본을 저장
    • 한 쪽이 고장나도 안전한 대체 가능
  • RAID 2 : ECC code를 사용
  • RAID 3 : Bit Interleaved Pairty
  • RAID 4 : Block Interleaved Parity / Parity disk가 고장 시 전체 데이터 손실
  • RAID 5 : RAID 4에서 parity를 각 디스크로 분산
  • RAID 6 : Parity 정보를 이중으로 기록
  • RAID 1 + 0 / RAID 0 + 1
    • 전자는 Striped Mirror, 후자는 Mirrored stripe
    • 신뢰성과 성능 모두를 추구
    • 디스크 구조상 RAID 1 + 0이 더 안전
  • hot-spare : 비상용 디스크 / RAID 중 디스크 고장 시 빠른 대체

Stable Storage Implementation

  • 데이터를 저장할 때 안전하게 보관하는 상태
  • 1개 이상의 비휘발성 저장소에 복원 가능하도록 데이터를 저장
  • Disk Write의 결과
    • 정상 작동
    • 부분 실패
    • 완전 실패
728x90

+ Recent posts