ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] NVM / RAID 구조
    운영체제 2020. 12. 12. 17:34
    728x90

    디스크 고장

    Disk write 도중에 전원이 나가면 consistency 가 깨짐. 버퍼는 휘발성이라 cpu는 버퍼에 쓴 순간 디스크에 썼다고 생각하지만 고장으로 인해 디스크에 써지지 못한 상황 → 비휘발성 버퍼(journaling file system)을 추가

     

    NVM (Nonvolatile Memory Device)

    SSD 나 USB 드라이브가 NVM 의 일환이며 seek time 이 일정하기에 FCFS 스케쥴링을 사용함

    Merging 기법 : 요청 중 비슷한 공간에 있는 애들을 합쳐서 한 번에 요청

    NAND 반도체 특성 상 Write 할 때마다 기능이 열화되므로 wear leveling 기법이 사용됨

    DWPD(Drive Writes Per Day) : 제품에 명시된 보증기간을 사용하기 위한 하루 권장 write 회수

     

    NAND Flash Memory

    FTL (Flash Translation Layer) 를 통해 유효한 데이터를 가지는 valid logical block 을 추적

    삭제는 페이지 단위로는 불가능하고, 블럭 단위로만 가능하며 덮어쓰기 또한 물리적으로 불가능함

    따라서 덮어쓰기를 하려면 valid page 를 미리 옮겨두고, 원래 블럭을 지운 뒤 덮어쓰기 하고자 하는 페이지와 백업해둔 페이지를 다시 쓰는 귀찮은 작업이 필요함 : 위 방법으로 invalid page 를 청산하는 것을 garbage collection 이라함

     

    garbage collection 을 위해서는 valid page 를 옮겨둘 수 있는 free block 이 필요한데 모든 블럭이 사용중이라면 이것이 불가능하니 오버 프로비저닝(Over-provisioning) 기법을 사용함

    오버 프로비저닝 : 전체 사용량의 80%만 사용자에게 공개하고, 나머지는 free block 으로 사용하는 기법

    RAID 구조

    RAID (Redundant Array of Independent Disk)

    • 옛날 개념 : 싼 디스크를 여러 개 모아 큰 디스크보다 저렴한 가격으로 시스템을 구축하자

    • 오늘날 개념 : 하드 디스크를 여러개 쓰는 것

      • 신뢰성(Reliability) 좋음

        • 하나가 고장나도 다른 디스크를 통해 작업을 이어가는 것

        • MTTF(Mean Time To Failure) or MTBF(Mean Time Between Failure) : 고장과 고장 사이의 평균 시간

        • Mean Time to Repair : 고장을 고치는데 걸리는 평균 시간

        • Mean Time to Data Loss = MTTF / M * MTTF / MTTR : 모든 디스크가 고장나서 데이터를 수용할 수 없는 주기

          • M = 디스크의 수

        • 사실 하드디스크의 주된 고장 원인이 갑작스런 전원 차단인데 보통 하나가 끊기면 다 같이 끊겨서 다 같이 고장나기때문에 MTDL 이 더 낮음

        • Mirrored disk : 디스크 내용을 복제해두어 사고 발생해도 정상 동작하도록 함

      • 성능 (Performance) 좋음

        • Striping : 디스크를 병렬로 두어 데이터를 여러 디스크에서 동시에 읽어들임



     

    RAID 0 + 1 : 먼저 병렬하게 디스크를 구성한 뒤 디스크들을 복제

    RAID 1 + 0 : 디스크를 먼저 복제한 뒤 각각이 병렬로 디스크를 재구성

     

    댓글

Designed by Tistory.