윈도 저장소 폴(저장소 공간)의 성능

저장소 공간은 이미 나온지가 꽤 지난 기술이지만 의외로 정보가 없다. 일단 이 글은 저장소 공간을 설정하는걸 설명하는게 목적이 아니기때문에 설정은 패스. 부실하지만 간략한 방법 및 설명은 [이곳 페이지]에서 확인가능.

그래도 저장소 공간을 만들 때 중요한 부분을 설명하자면

  • 단순(복원 없음) – RAID 0에 해당. 디스크 두개 이상이 모두 이어저 하나로 연결된 형태(1테라 + 1테라 => 2테라). 단점은 하드 중 하나라도 고장나면 모든 데이터가 소실된다.
  • 양방향 미러 – RAID 1에 해당. 모든 디스크에 동일하게 데이터를 기록하는 형태(1테라 + 1테라 => 1테라). 두개 이상의 하드에 동일하게 기록하기때문에 구성 된 하드 중 하나만 정상이고 나머지는 망가져도 데이터는 보존된다.
  • 패리티 – RAID 5에 해당. 이건 좀 복잡하다. 단순하게 생각하면 디스크 세개이상을 두개의 용량으로 사용하면서(1테라 + 1테라 + 1테라 => 2테라) 하나의 디스크가 문제있어도 해당 디스크 교채 후 재구성이 가능하다.

그 외 3방향 미러가있지만 패스. HDD가 다섯개 이상 필요하기도하고 이정도로 구성할 사용자가 개념을 알기위해 이걸 볼 이유가 없을것이기때문(…). 첨언을 하자면 저장소 공간은 기본 할당 가능한 용량보다 높게 설정가능하지만 그 용량 을 넘어서 기록 된 데이터 안정성 보장이 안되므로 추천하고싶지않다.

목적이 아닌 서론은 이정도에서 끝. (참고로 아래 내용은 일부 OS의 환경이나 하드웨어에 따라 다를 수 있으니 모든 사용자에 해당하지 않을 수 있다고 본다.)

2019-08-10 추가내용

데이터 유실이 발생된 분도 계셔서 주의를 추가합니다.

분문에 올린 설정 조작은 데이터가 없는 상황에 또는 백업을 해두고 하시기를 바랍니다. 결론적으로 지금까지 윈도에서는 저장소 공간, 인텔 빠른 스토리지 기술, 리눅스에서는 LVM, zfs로 여러가지 소프트웨어 레벨의 RAID-5를 사용해봤지만 현재 윈도 데스크톱에는 HDD를 다 때어내고 시놀로지나스에서 iSCSI를 할당하여 연결하고 리눅스 머신의 zfs만 사용중입니다.

btrfs에서 바로 RAID-5를 사용할 수 있지만 블록 레벨 단위의 파티션이 필요하여 LVM RAID-5위에 btrfs를 돌렸지만 수개월만에 파일시스템 손상이 발생하였으며 저장소 공간, 인텔 빠른 스토리지 기술은 만족할 수 있는 성능이 아니였습니다. (zfs나 btrfs같은 자체적으로 데이터 오류감지 & 수정하는 파일시스템은 레이드 위에 올리면 서로 이것을 하기때문에 충돌을 일으킬 수 있으니 자체 레이드를 사용하기를 추천하기도합니다.)

리눅스환경이 익숙하면 linux on zfs를 사용하거나 아니면 비용을 지불하여 가정용 나스를 사용하시길 추천드립니다. (btrfs의 RAID-5는 쓰기속도 테스트 안해봐서 잘 모르겠으며 linux on zfs는 매우 만족스러운 성능이지만 HDD 구성을 변경하던 중 인식문제가 발생했었기때문에 꼭 여분의 하드를 준비하여 cron등으로 주기적으로 rsync를 하는 환경을 두시길 바랍니다.)

쓰기속도를 어느정도 보장받으면서 윈도에서 소프트웨어 레이드를 사용하려면 공간효율이 나쁘지만 RAID-1을 권합니다.

디스크 공간을 설정하고나서 아래와같이 처절한 속도를 보여주었다. 대체 이건 언제적 미디어 속도지? (그래프 앞부분은 SSD에서 빠르게 읽힌 내용을 메모리에 버퍼로 읽은 부분이므로 실제 쓰기에 해당되는 성능은 아니다.)

이래처럼 작업 관리자의 성능 탭에서 보면 꾸준히 그래프는 9~12MB/s 범위를 유지하고있다. (디스크 전송 속도 그래프의 점선)

구글링으로 삽질해본 결과 성능을 올리는 방법은 PowerProtected 옵션을 활성화하는것이다. 아마도 전원이 나갔을경우에도 데이터 안정성을위해 캐시를 사용하지 않는듯하다. 현재 상태를 확인하려면 장치관리자에(시작 버튼을 우클릭하여 실행가능)서 [디스크 드라이브]의 [Microsoft Storage Space Device]를 더블클릭하여 속성을 열고 [정책] 탭을 열면 확인가능하다.

저장소 공간의 PowerProtected를 True로 변경하면 쓰기 캐싱이 활성화 되며 이렇게 변경하고 파일을 복사하면 아래와같이 그나마 나은 쓰기 속도를 볼 수 있다. (평균은 약 50~60MB/s 정도로 추정.)

작업 관리자의 성능에서 확인하면 아래와같다.

PowerProtected 옵션을 변경하기위해서는 PowerShell을 관리자 권한으로 실행한다. 실행 방법은 윈도 키를 누른 후 Windows PowerShell 입력 후 아래같은 상태에서 컨트롤 + 쉬프트 + 엔터를 누르면 관리자 권한으로 실행가능. (또는 마우스 우클릭 – 자세히 – 관리자 권한으로 실행)

아래 화면처럼 Get-StoragePool을 입력하면 저장소 공간의 정보를 볼 수 있으며, Primordial을 제외한 FriendlyName 항목이 할당한 저장소 공간이다. (대소문자 구분 안하며 탭 키로 일부 자동완성을 사용할 수 있다.)

이제 Set-StoragePool -FriendlyName “이름” -IsPowerProtected $True 명령을 실행하면 쓰기캐시를 활성화 할 수 있다. 혹시나 장치관리자에서 저장소 공간에 할당 된 하드의 캐시를 비활성화 해보았으나 성능이 영 좋지 못하게된다.

구글링으로 확인 된 성능은 [이곳 페이지]에서 직접 확인 가능하며, 아래와같은 성능이 정상인거같다. 즉, 대용량 파일 쓰기는 123MB/s, 읽기는 160MB/s정도.

원래 RAID 5는 쓰기속도가 떨어지는 편이라고 하고 완전한 하드웨어 레이드가 아니라면 더 떨어질 수 밖에 없으니 쓰기 성능은 어느정도 손해를 볼 수 밖에 없으니 이정도로 만족을 해야겠다. 대신 읽기속도는 빠르니 나름 만족 중. (어차피 게임을하면 읽기 속도가 빨라야지 쓰기 속도는 영향 못미치기 때문.)

읽기 속도는 아래처럼 360MB/s가 유지되는것으로 단일하드의 속도대비 225%정도 나오는것으로 보인다.

기본 설정이 좀 구렸지만 그래도 쓸만한거같다. 저장소 공간을 사용하기 이전엔 소프트웨어 레이드를 사용해봤지만 어느순간 레이드가 풀려버리고 리빌드가 안된상태로 단일 하드로만 사용고있던 문제를 몇번 겪어보았기때문에 이번엔 저장소 공간을 구성해보았다. 과연 저장소 공간은 이런 상황이 발생하면 바로 경고 메시지를 띄워줄까? (애초 레이드 구성에 문제가 발생되어도 알림이 떠야하는게 정상일텐데 -_-;)

리눅스는 거의 동일한 LVM이란것이 많이 사용되고있고 사용해보면 한번 구성하면 높은 용량으로 증설하기 위해서는 디스크를 초기화 해야하는 레이드와는 달리 LVM과 저장소 공간은 유동적으로 추가 제거 변경이 가능해서 좋은 기술이라고 생각된다.

암튼 주절주절 글이 되어버렸지만 이쯤에서 저장소 공간의 성능에 관련 된 글 끗!

6 Comments

    블러드슈가

    저장소 공간을 구성하고 나서 하드디스크를 떼어내서 다른 피시에 연결하면 온전히 저장소 풀을 인식하게 될까요?

      iruis

      답글이 많이 늦었습니다 ㅠㅠ 결론부터 말씀드리면 예 입니다. OS 디스크를 포맷해도 문제없이 인식됩니다.

      약 3년정도 전 인텔 RST의 RAID기능을 사용 중 보드가 망가져 상위 모델로 교체한적있습니다. 하드 뽑은상태로 바이오스 SATA를 RST로 변경하고 윈도 설치하면서 RST드라이버 인식시키고 설치가 완료되니 기존 데이터 온전하게 RAID 인식되어있었습니다. 하지만 이건 위험이 따르죠. (보드를 바꾸면 RAID 상태가 유지된다는 보장이 없으니…)

      윈도의 오래된 방법인 소프트웨어 RAID (Regacy or Classic RAID), 저장소 폴의 RAID를 활용하면 윈도 설치중에도 온전하게 레이드가 인식됩니다. (단, 드라이브가 활성화 되어있지않으면 디스크 관리자로 들어가서 해당 드라이브의 좌측 레이블에서 우클릭 후 활성화 해야합니다.) 이쪽를 선호하게 된건 이쪽이 하드웨어를 교체해도, OS를 다시깔아도 하드만 그대로 옮기면 문제없이 레이드를 그대로 쓸 수 있기때문입니다.

      이미 시도하셨거나 해답을 얻었을지도 모르겠지만 늦게나마 답변을 남깁니다. 감사합니다!

    드리머

    Set-StoragePool -FriendlyName “이름” -IsPowerProtected $True – 이 메뉴 사용하니, 사용중이던 저장소가 날아가는군요. 데이터가 모두 날라갔습니다. ㅜㅜ

      iruis

      무어라 해드릴 수 있는 말이 없군요…ㅠㅠ 다른 PC가 있다면 하드를 고스란히 옮겨서 달아보는게 작은 희망일거같은데… 중요한 데이터가 날아가지않으셨기를 바라겠습니다.

    지나가다가

    저장소풀로 raid1 양방향미러 구성했는데요
    하드 하나가 크리스탈인포 옐로우 떠서 바꿔 줄려고 하는데…

    인터넷세상에서 문제가 이거 하드 교체 하고 복구하는 방법 가이드가 어디에도 없습니다.

    죄다 구성하기. 속도. 그런거만 나왔지 정작 복구 하는 방법에 대해서 가이드가 나온게 없어서. 지금 밤새 검색중입니다 ㅜ.ㅜ

      iruis

      Windows Storage Spaces — Replacing a Failed Disk [Two-way Mirror]

      위 글 내용대로 저장소 공간 관리 화면에서 ‘설정 변경’ 버튼을 클릭하여 승인한 다음 ‘드라이브 추가’로 새로 구입한 드라이브를 선택하여 추가, 이후에 경고가 발생한 드라이브를 ‘제거’하시면 되는것으로 설명되어있는데 가상머신을 만들어서 직접 테스해보니 저장소 공간에 묶여있는 포트에 드라이브를 교체하여 추가하려하면 이미 사용중이라는 에러가 뜨고 추가가 안되더군요. 이걸 풀어서 설명드리면

      1. 에러가 발생하는 경우
      SATA 2번 포트에 연결 된 하드 드라이브가 경고 발생
      SATA 2번 포트에 연결 된 하드 드라이브를 제거
      SATA 2번 포트에 새로 구입한 하드 드라이브 연결
      -> 드라이브 추가를 하려하면 에러 발생

      2. 에러가 발생 안하는 경우 첫번째
      SATA 2번 포트에 연결 된 하드 드라이브가 경고 발생
      SATA 2번 포트에 연결 된 하드 드라이브를 제거
      SATA 3번 포트에 새로 구입한 하드 드라이브 연결
      -> 위 사이트 설명대로 진행

      3. 에러가 발생 안하는 경우 두번째 (추천)
      SATA 2번 포트에 연결 된 하드 드라이브가 경고 발생
      SATA 3번 포트에 새로 구입한 하드 드라이브 연결
      -> 위 사이트 설명대로 진행
      SATA 2번 포트에 연결 된 하드 드라이브를 제거

      3번 작업이 완료 된 이후에 새로 구입한 하드를 SATA 3에서 SATA 2으로 옮겨 꼽아도 인식 됩니다.

      저장소 공간에 드라이브를 추가 한 후 어느정도 시간이 지나야 ‘제거 준비 완료’가 뜨는데 아마 ‘경고’상태가 아니라면 제거가 안뜨는지… 까지는 확인을 안해봐서 모르겠습니다. 그럴 경우는 드라이브를 물리적으로 분리하면 제거하실 수 있을것으로 생각됩니다. (애초 디스크 장애 대응이 불가능한 미러나 JBOB가 아니라면 최대한 빠르게 복구해야하지만 디스크 하나정도는 동작 불가능 수준으로 망가지거나 물리적으로 분리되어도 운영 가능합니다. 단, 지금처럼 아직 경고인 상태에서는 위 3번 추천대로 새로운 드라이브를 추가한 후 제거를 하는게 더 좋습니다.)

      여담으로 시놀로지 나스같은 제품이 아니라면 교체 작업은 주의를 많이 기울여야합니다. 애초 레이드 구축한 드라이브 중 하나가 문제 발생하면 보통 모든 드라이브를 새로 구입하여 새로운 레이드를 생성하여 데이터를 이전시키는것이 추천됩니다. 하나가 수명 거의 다 되어가면 나머지 하드도 동일하게 구동되었기 때문에 마찬가지로 얼마 안남았을 수 있으니까요.
      그리고 위에 다른 분 사례도 있듯 예상치도 못한 문제가 발생할 수 있기때문에 외장 드라이브 등에 백업을 하신 후 진행하시길 추천드립니다.

블러드슈가에 답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

*
*

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.