태그 보관물: disk

Windows10 – Raid 0 Configuration using Storage Space

저장소 공간을 이용한 Raid 0은(단순-Simple 유형) 구성을해도 속도 향상이 거의 없어

스팬 볼륨일 거라는 말이 많았죠.

구글링을 해보니 저장소 공간 GUI에서는 제대로된 Raid 0 설정을 할 수 없고 파워쉘을 통해 구성

해야만 되는 거였습니다.

 

저장소 공간의 “Columns”라는 “열” 설정이 동시에 읽기/쓰기를 할수 있는 피지컬 드라이브 숫자

설정인데 GUI에서 2개의 디스크로 단순(Simple) 유형을 만들면 “Columns”이 “1”로 설정되어 속도

향상이 없던거였습니다.  GUI에는 바꿀수있는 옵션이 없습니다.

파워쉘로 “Columns” 를 설정해 만들어주면 Raid 0으로 아주 잘되고 속도 또한 좋습니다.

저장소 공간 Raid 0의 장점은 SSD 트림을 확실하게 지원합니다.

 

디스크관리자와 작업관리자에서 보드내장 Raid 처럼 하나의 드라이브만 표시 되어 관리가 쉽습니다.

데이터 삭제 없이 디스크를 추가할 수 있습니다.

** 디스크 추가는 처음 설정된 “Columns(열)” 수의 배수로 추가해야 되고 “Columns”수는 고정으로 변하지 않습니다.

예를들어 “2열” 설정으로 디스크 2개를 묶었으면 나중에 추가할때 디스크 2개를 추가해야하고(2,4,6,8…)

디스크 4개가 되도 열수는 “2열” 고정이라 2개 묶은 속도만 나옵니다.

속도는 상관 없고 추가 용량만 필요한 상황일때 좋겠죠.

 

이제 만드는 방법입니다.

처음부터 끝까지 파워쉘로만 만드는 방법이 있으나 어려우니 저장소 풀 까지는 GUI에서 만듭니다.

1. 디스크관리자를 실행해 Raid 0으로 묶을 디스크들의 볼륨을 삭제 합니다.

2. 제어판 – 저장소공간 – 새 풀 및 저장소 공간 만들기로 들어갑니다.

e3fd12641178cb89c00b4589ca2d69ce9b7b9006.png

 

3. 드라이브를 선택하고 풀 만들기를 합니다.

9decc1eca47a0227e615d944ac75e70b2473b71f.png

 

* 생성 오류가 나는 경우 디스크 초기화를 합니다. 방법은 관리자모드 파워쉘을 실행하고

Get-PhysicalDisk | ft FriendlyName, SerialNumber, UniqueId -auto

하면 드라이브 목록이 뜹니다.

Reset-PhysicalDisk -FriendlyName “WDC WD20 EZRZ-00Z5HB0”

목록에서  초기화할 디스크의 FriendlyName 을 “WDC WD20 EZRZ-00Z5HB0” 에 적어 초기화합니다.

 

4. 저장소 풀은 만들어 졌으니  “취소” 를 누르고 나갑니다.

6e05bacf1462fb1e65c00fd870ce6c70bb21fc36.png

“저장소 공간 만들기” 누르면 “Columns” “1” 설정으로 바로 만들어져서 전부 삭제하고 다시 해야 됩니다.

 

5. 오른쪽에 “풀 이름 바꾸기”에 들어갑니다. 활성화가 안되어 있으면 “확인” 위에있는 설정변경을 누르면 됩니다.

f7d7964864811c9400b7e002a7d04d7d7a4cb832.png

 

6. 원하는 이름으로 바꾸고 “풀 이름 바꾸기”

bf22a860ee296d552a1086640e4c34ebf1e8a55b.png

 

7. 관리자모드 파워쉘을 열고

New-VirtualDisk -FriendlyName WriteBack -StoragePoolFriendlyName  “NVME”  -NumberOfColumns 2 -Interleave 32768 -ResiliencySettingName simple -UseMaximumSize

입력합니다.

-FriendlyName WriteBack : 만들어질 가상 드라이브(Raid0)의 이름인데 나중에 초기화 해야되니 아무거나 해도 됩니다.

-StoragePoolFriendlyName  “NVME” : 6번에서 바꿔준 이름을 넣습니다.

-Interleave 32768 : 스트라이프 사이즈입니다. 이 옵션을 빼면 저장소 기본 256K로 됩니다. 일반환경에선 64K나 128K 정도가 성능이 가장 좋습니다. 1024를 곱해서 넣어주면 됩니다. 잔파일이 많을수록 작게, 큰파일이 많을수록 크게 잡는게 좋습니다.

저는 잔파일이 아주 많은 스크래치 디스크라 32K로 했습니다.

-NumberOfColumns 2 :  가장 중요한 2열을 쓴다는 설정입니다. 디스크가 3개면 3을 넣어야겠죠.

-ResiliencySettingName simple -UseMaximumSize : 유형을 단순(Raid0)으로, 디스크 크기는 적용할수있는 최대 사이즈로 만듭니다.

 

8. 또 다른 내 경우 4개의 NVMe disk Raid 0 으로 설정하기 위해 아래 설정을 이용

New-VirtualDisk -FriendlyName WriteBack -StoragePoolFriendlyName “NVME” -NumberOfColumns 4 -Interleave 131072 -ResiliencySettingName simple -UseMaximumSize

 

9.제대로 만들어지면 이렇게 나옵니다.

b3f16072b98141be884d50edfab0489fa3d50999.png

 

10. 디스크 관리자를 실행해서 초기화하고 포맷하고 쓰면 됩니다.

9789c1e3cb973b5c127c530acd310fdba43a1253.png

길어보여도 중간에 파워쉘 명령어만 잘 입력하면 쉽게 만들어 집니다.

 

참고 링크

https://answers.microsoft.com/en-us/windows/forum/windows_10-files/storage-spaces-trying-to-create-a-raid-0-with/c440086c-4bb6-410d-9e92-fd98ce6626cc

https://social.technet.microsoft.com/Forums/en-US/322755f0-6a38-49b5-9158-49ae04031098/storage-spaces-only-supports-jbod-and-not-raid0?forum=win10itprovirt

https://www.dell.com/support/manuals/ko-kr/storage-md1420-dsms/dsms_bpg_pub-v2/microsoft-storage-spaces-best-practices?guid=guid-8d032e58-86f2-4d36-9617-7a82596848f5

– 델의 마소 저장소 공간 설명서 인데 여러개의 하드를 묶고 SSD로 캐시를 구성하는 방법까지 잘 나와 있습니다.

———————————————————————————————————————————–

<추가합니다.>

** GUI로 풀생성시 물리섹터가 4K인 디스크들을 묶으면 논리섹터가 4K로 잡힙니다.

데이터 입출력에는 문제가 없으나 프로그램이나 게임 실행시 오류가 날수있습니다.

이럴땐 GUI가 아닌 파워쉘에서 논리섹터를 강제로 512로 잡아 풀을 생성해야 합니다.

물리섹터가 512인 디스크들은 자동 논리섹터 512로 잡힙니다.

 

관리자모드 파워쉘을 실행합니다.

Get-PhysicalDisk | sort-object SlotNumber | select SlotNumber, FriendlyName, Manufacturer, Model, PhysicalSectorSize, LogicalSectorSize | ft

연결된 디스크들의 물리와 논리 섹터를 보여주는 파워쉘 명령어 입니다.

묶을 디스크의 물리섹터가 4K(4096)이고 게임이나 프로그램을 실행한다면 파워쉘로 논리섹터 512로

저장소 풀을 생성합니다.

$PhysicalDisks = (Get-PhysicalDisk -CanPool $True)

풀생성 가능한 디스크들을 보여주고 “$PhysicalDisks” 항목으로 설정.

여기서 보이는 디스크들이 전부 저장소 풀이 됩니다.

New-StoragePool -FriendlyName NVME -StorageSubsystemFriendlyName “Windows Storage*” -PhysicalDisks $PhysicalDisks -LogicalSectorSizeDefault 512

“NVME”라는(원하시는거로 바꿔 주세요.) 새로운 풀을 생성합니다.

-LogicalSectorSizeDefault 512 : 논리섹터 사이즈 512로 설정.

이후 7번 항목 “New-VirtualDisk” 로 저장소 공간을 만들어 주면 됩니다.

프로그램 실행 안하면 물리4k, 논리4K로 쓰는게 속도가 더 빠릅니다.

프로그램이나 게임을 실행한다면 논리섹터 512로 풀을 생성해야 합니다.

전부 그런건 아니지만 일부 게임이나 프로그램에서 논리섹터 4K를 쓰면 오류가 납니다.

물리섹터가 512인 디스크는 논리섹터 4K는 안되고 512만 됩니다.

하드,SSD의 물리섹터는 제품마다 4K, 512 제각각입니다 ㅡㅡ;

 

DiskPart command concept and how to use.

Diskpart 개념과 사용 방법 안내

Windows OS에서 디스크 파티션을 조작할려면 [컴퓨터 관리]에 있는 [저장소] → [디스크 관리]를 사용하는 것이 일반적일 것입니다. 하지만 diskpart.exe라는 명령어를 이용해서도 똑같은 작업을 할 수 있습니다.

※ Diskpart는 파티션 작업 명령으로 데이터가 삭제되므로 중요 데이터 백업 및 확인후 사용토록 주의하시기 바랍니다.

Diskpart 란?

– Windows98이나 Windows ME에서 사용하던 Fdisk를 대체하는 파티션 툴로 동적 디스크를 지원하고, 디스크 관리 스냅인에서 지원하는 것보다 더 많은 작업을 수행할 수 있습니다. 디스크 관리 스냅인은 사용자가 실수로 데이터 손실을 초래할 수 있는 작업을 수행하지 못하도록 하지만, Diskpart를 사용하면 파티션과 볼륨을 명시적으로 제어할 수 있으며, 이런 기능 때문에 신중히 사용해 주셔야 합니다.

– 윈도우 XP, 2000, Vista, 7 이상 OS에서 사용 가능합니다. (위치 : C:\Windows\****32 폴더내 있습니다.)

Diskpart 사용 방법

1] Diskpart 모드 진입하기

  • 1. **** 모드로 CMD 콘솔 실행합니다.
  • 방법 : 시작 > 프로그램 및 파일 검색(또는 Windows 검색) 창에 ‘CMD’ 입력 > CMD 항목에 마우스 오른쪽 버튼 클릭 후 ‘**** 권한으로 실행’ 선택

    시작을 눌러 검색창에 cmd 입력하여 검색후 마우스 오른쪽 버튼을 눌러 **** 권한으로 실행을 클릭하는 예시 화면

  •  
  • 2. diskpart 입력 후 엔터를 칩니다.

    diskpart 입력하고 엔터 치는 창

  •  
  • 3. DISKPART> 프롬프트 발생하면 이후 사용 가능합니다.

    diskpart 명령프롬프트 떠 있는 창

2] 디스크 초기화하기

Diskpart 모드 진입 상태에서 명령어를 이용하여 하드디스크의 파티션을 모두 초기화합니다.

  •  
  • 1. list disk : 디스크목록 보기
  •  
  • 2. select disk 1 : 초기화할 disk를 선택합니다. (“sel disk 1” 와 동일)
  •  
  • 3. list partition : 파티션정보 확인 (“list part” 와 동일)
  •  
  • 4. clean : 선택된 디스크의 파티션정보를 전부 초기화
  •  
  • 5. list partition : 파티션 정보 사라짐 확인
  • 위 5가지 목록에 대하여 명령어를 입력하고 진행한 화면창

  • ※ 여기서 포커스란 개념이 나옵니다. select 명령을 이용해 작업하고자 하는 객체에 포커스를 주어야 합니다. select disk 1 이라고 주고 list disk 하자 disk 1 옆에 * 가 붙었습니다. 앞으로 disk 1 이 작업대상이 된 겁니다. (select disk=1이라고 해도 됩니다.)

3] 디스크 파티션 분할하기

하드디스크의 파티션을 분할(주, 확장, 논리) 합니다.

  •  
  • 1. list disk : 디스크 목록 보기
  •  
  • 2. select disk 1 : 초기화할 disk를 선택합니다.
  •  
  • 3. list partition : 파티션 정보 확인
  •  
  • 4. create partition primary size = 120000 : 주파티션을 120GB만큼 생성하는 명령어
  •  
  • 5. create partition extended : 확장파티션 생성
  •  
  • 6. create partition logical : 논리파티션 생성
  • 위의 6가지 항목을 차례대로 명령어 입력해서 진행한 창

※ create partition primary size = 120000

120000M 크기(size=120000)의 주파티션(primary partition)을 만들라(create)는 명령입니다. size 지정을 안하게 되면 이용가능한 모든 용량을 잡습니다. 파티션을 1개만 잡을 때 또는 마지막 파티션을 잡을 때는 size 옵션을 생략하면 됩니다. 주파티션은 4개까지 만들 수 있고, 그 이상을 만들려면 주파티션 1개 대신 확장파티션을 잡아야 합니다. 즉, 최대 주파티션 3개 확장파티션 1개가 됩니다. 확장파티션은 디스크당 1개만 만들 수 있습니다. 확장파티션에서 원하는 개수만큼 논리드라이브를 만듭니다.

※ 확장 파티션 설정

create partition extended : 확장파티션(extended partition)을 만들라(create)는 의미입니다. size 지정이 없으면 disk의 남은 용량을 전부 이용합니다. 확장 파티션에서는 반드시 1개 이상의 논리드라이브를 지정해 주어야 합니다. create partition logical size = 250 라고 하면 250메가의 논리드라이브(partition logical)가 생성되고, create partition logical size = 100 하면 100메가의 논리드라이브(partition ligical)가 추가 생성됩니다. create partition logical 이라고만 하면 나머지 용량을 모두 잡습니다. list partition을 입력하면 선택한 디스크의 파티션 정보를 볼 수 있습니다.

디스크관리의 디스크1의파티션에 포맷과 드라이브 문자 할당이 안되어있는 화면
※ create partition 이후 디스크 관리에서 디스크1의 파티션에 포맷과 드라이브 문자 할당이 안 되어 있습니다.

4] 파티션 포맷하기

분할된 파티션을 포맷합니다.

  •  
  • 1. format fs=ntfs quick : 현재 선택되어 있는 파티션을 ntfs로 빠른 포맷한다.
  •  
  • 2. list partition : 파티션 선택 확인
  •  
  • 3. select partition 1 : 포맷할 파티션 선택
  •  
  • 4. format fs=ntfs quick : 선택한 파티션을 ntfs로 빠른 포맷합니다.
    ※ 참고로 fs=fat32로 하면 FAT32로 포맷합니다. (단, 30GB 이하일 경우에만 진행해야 합니다.)

    위 4번항목에 대한 명령어를 모두 입력한 상태창

  •  
  • 5. 디스크 관리에서 포맷 완료는 확인되나, 아직 드라이브 문자 할당은 안된 상태로 보이게 됩니다.

    디스크관리에서 포맷완료는 했으나 드라이브 할당이 안된 상태창

5] 파티션[드라이브] 문자 할당

분할된 파티션에 드라이브명을 할당합니다.

  •  
  • 1. assign letter=x : 선택되어 있는 파티션에 X 드라이브명 할당
  •  
  • 2. list partition : 선택된 파티션을 확인

    위 2가지 항목에 대한 명령어 실행 화면창

  •  
  • 3. select partition 2 : 문자를 할당할 파티션을 선택
  •  
  • 4. assign letter=Z : 선택되어있는 파티션에 Z드라이브명 할당

    select partition 2 입력하고 list patition입력후 assign letter=Z 명령어 입력창

  •  
  • 5. 디스크1의 파티션에 드라이브명이 할당된 것을 확인할 수 있습니다.

    디스크1의 파티션에 드라이브명이 x와 z로 할당된 상태창

  • ※ assign letter=X 명령어에서, letter=X 옵션을 안쓰면 차례로 미사용 문자가 할당됩니다. list volume을 입력하면 선택한 디스크의 볼륨(드라이브명)을 확인할 수 있습니다.

6] 파티션 삭제하기

분할된 파티션을 삭제합니다.

  •  
  • 1. 파티션 4,5,6(볼륨 3,4,5)에 각각 X:, Y:, Z: 가 할당된 파티션입니다.

    파티션 4,5,6에 각각 X:, Y:, Z: 할당된 파티션 창

  •  
  • 2. 파티션을 삭제합니다. 볼륨으로 지정하는 경우 드라이브명이 지정되어 있다면, 드라이브명을 쓸 수 있습니다. 볼륨 번호랑 파티션 번호가 다르니 혼동하지 않도록 주의하세요.
  • select volume z 볼륨 z에 포커스를 맞춥니다. (select volume=z 도 같음 “=” 생략 가능)
  • delete partition 파티션을 삭제합니다. 마찬가지로 볼륨 y(파티션 5), 볼륨 3 (볼륨 x, 파티션 4)를 삭제합니다.

    select volume z입력후 delete partition후 select partition y입력후 select partition 5 입력 delete partition입력후 select volume 3입력후 delete partition 입력 확인창

    select partition 3입력후 delete partition에서 delete partition override입력후 확인

  •  
  • ※ 파티션 3번의 확장파티션에 포커스를 주고 삭제하려는데 잘 안될수 있습니다. 이럴 때 위 그림의 입력 내용처럼 delete partition override 라고 override 옵션을 주면 됩니다.(히든 영역 삭제 가능)
  • ※ 브랜드 PC에서 별도 영역으로 구성한 파티션, 즉 [OEM 파티션]을 삭제할 때도 대상 파티션에 포커스를 주고, delete partition override 로 삭제합니다. 삼성 PC에서는 복원영역이 OEM 파티션 영역입니다.

    oem파티션 영역을 표시한 디스크관리 창

7] Diskpart 나가기

diskpart를 종료하는 방법은, exit를 입력합니다.

exit명령어로 나가기 실행

Boot2Docker Volume Disk Resize

Boot2Docker에서 “장치에 남은 공간 없음” 오류가 발생합니까?

많은 수의 이미지와 함께 Boot2Docker를 사용하거나 작업 중인 이미지가 매우 큰 경우 Boot2Docker VM의 볼륨 공간이 부족하면 문제가 발생할 수 있습니다. 솔루션은 먼저 볼륨을 복제한 다음 디스크 파티셔닝 도구를 사용하여 크기를 조정하여 볼륨 크기를 늘리는 것입니다. (GParted)[ http://gparted.sourceforge.net/download.php/index.php ]는 무료 ISO이고 VirtualBox와 잘 작동하기 때문에 사용하겠습니다.

1. Boot2Docker의 VM을 중지합니다.

$ boot2docker stop 

Boot2Docker는 VirtualBox의 기본 도구로 크기를 조정할 수 없는 VMDK 이미지와 함께 제공됩니다. 대신 VDI 볼륨을 만들고 VMDK 볼륨을 여기에 복제합니다.

2. VirtualBox 명령줄 도구를 사용하여 VMDK 이미지를 VDI 이미지로 복제합니다.

$ vboxmanage clonehd /full/path/to/boot2docker-hd.vmdk /full/path/to/<newVDIimage>.vdi —format VDI —variant Standard

3. 필요에 적합한 크기를 선택하여 새 복제 볼륨의 크기를 조정합니다. 많은 컨테이너를 회전하거나 컨테이너가 특히 큰 경우 더 큰 것이 좋습니다.

$ vboxmanage modifyhd /full/path/to/<newVDIimage>.vdi —resize <size in MB>

4. (GParted)[ http://gparted.sourceforge.net/download.php/ ] 와 같은 디스크 파티션 도구 ISO를 다운로드합니다 . Boot2Docker VM의 IDE 버스에 ISO를 추가합니다. ISO를 추가하기 전에 버스를 생성해야 할 수도 있습니다.

5. VirtualBox의 Boot2Docker 이미지에 새 VDI 이미지를 추가합니다.

6. Boot2Docker VM에 대한 설정에서 CD/DVD가 부팅 순서 목록 의 맨 위에 있는지 확인 합니다.

7. VirtualBox에서 Boot2Docker VM을 시작하면 디스크 파티션 ISO가 시작됩니다. 

GParted를 사용하여 GParted Live(기본 설정) 옵션을 선택합니다. 기본 키보드, 언어 및 XWindows 설정을 선택하면 GParted 도구가 시작되고 생성한 새 VDI 볼륨이 표시됩니다. VDI를 마우스 오른쪽 버튼으로 클릭하고 크기 조정/이동 을 선택합니다 . 볼륨을 나타내는 슬라이더를 최대 크기로 끌어 크기 조정/이동 을 클릭 한 다음 적용 을 클릭 합니다. GParted를 종료하고 VM을 종료합니다. VirtualBox의 Boot2Docker VM용 IDE 컨트롤러에서 GParted ISO를 제거합니다.

8. VirtualBox에서 또는 명령줄( boot2docker start)을 사용하여 Boot2Docker VM을 시작하여 볼륨 변경 사항이 적용되었는지 확인합니다.