22TB 디스크를 분할하는 방법?


33

에 22TB 디스크가 /dev/sdb있습니다. 22TB 파티션은 어떻게 만듭니 까? 정말 파일 시스템에 대해 걱정하지 마십시오 - ext4zfs괜찮습니다.

CentOS 6.2 실행-파티션이 데이터 덤프로 사용됩니다. 단일 파일 스트림 만 있으므로 어떤 파일 시스템에 대해 까다 롭고 선택하기가 쉽지 않습니다. 디스크는 12x2TB 니어 라인 SAS 드라이브와 Dell Perc 컨트롤러로 구성됩니다.

22TB 파티션 만 원합니다.


1
더 많은 정보가 도움이 될 것입니다. 어떤 OS를 사용하고 있습니까? 어떤 종류의 성능을 기대하거나 얻을 수 있습니까? 기본 하드웨어는 무엇입니까? 이미 습격 세트입니까? 중복성이 있습니까? zfs의 추가 데이터 보호 기능이 필요하십니까?
팀 케네디

3
지금까지 어떤 시도가 실패 했습니까? fdisk, cfdisk?
Nils

답변:


44

가장 간단한 해결책은 Linux의 64 비트 버전 인 GPT 파티셔닝XFS를 사용하는 것입니다 .

  • 생성 한 MS-DOS 스타일 MBR 파티션 테이블fdisk 은 2TiB 디스크로 제한 되므로 GPT가 필요합니다 . 따라서 parted또는 대신 GPT 인식 파티션 프로그램 을 사용해야 fdisk합니다. ( gdisk, gparted등)

  • 32 비트 커널은 요청한 것보다 작은 파일 시스템으로 제한하기 때문에 64 비트 커널이 필요합니다. 32 비트 정수를 기반으로 한 크기 제한에 도달 했거나 파일 시스템을 제대로 지원하기에 충분한 RAM을 처리 할 수 ​​없게되었습니다.

  • XFS는 유일한 해결책은 아니지만 제 생각에 RHEL 시스템에 가장 쉬운 솔루션입니다.

    RHEL 6에서는 ext4를 사용할 수 없습니다. 파일 시스템은 1 개의 EiB 파일 시스템을 지원하도록 설계 되었지만 e2fsprogsRHEL 6 및 그 파생어 에 포함 된 버전에는 인공 16TiB 볼륨 크기 제한이 있습니다. Red HatCentOS 는 모두 문서에서 이것을 부릅니다. (ext4 16 TiB 제한은 RHEL 7 ~ 50 TiB 에서 상당히 증가했습니다 .)

    ZFS는 상황에 따라 실용적이지 않을 수 있습니다 . 몇 가지 법적 및 기술적 제한으로 인해 ZFS에서만 제공하는 것이 필요하지 않은 한이를 추천 할 수 없습니다.

    선택한 두 파일 시스템을 배제한 후 XFS를 제안합니다. RHEL 7의 기본 파일 시스템으로, 모든 RHEL 6 버전에서 지원되는 파일 시스템으로 사용 가능했으며 RHEL 6이 나온 후 이후의 RHEL 5 릴리스로 백 포트되었습니다.

과정은 다음과 같습니다.

  1. mkfs.xfs인수없이 설치하여 설치 했는지 확인하십시오 . 없는 경우 userland XFS 도구를 설치하십시오.

    # yum install xfsprogs
    

    실패하면 아마도 기본 패키지 저장소에 이것을 가지고 있지 않은 구형 OS에 있기 때문일 수 있습니다. 실제로 업그레이드해야하지만 불가능한 경우 CentOSPlus 또는 EPEL 에서 얻을 수 있습니다 . kmod_xfs패키지 를 설치해야 할 수도 있습니다 .

  2. 파티션을 생성하십시오 :

    22TiB 볼륨이 켜져 있다고 /dev/sdb하면 명령 parted은 다음과 같습니다.

    # parted /dev/sdb mklabel gpt
    # parted -a optimal -- /dev/sdb mkpart primary xfs 1 -1
    

    단일 파티션으로 전체 볼륨을 인계받습니다. 실제로, Advanced Format HDDSSD 에서 전체 성능을 얻는 데 필요한 4 KiB 정렬 을 달성하기 위해 볼륨의 첫 번째 1MiB를 무시합니다 .

    이 단계를 건너 뛰고 XFS로 전체 볼륨을 포맷 할 수 있습니다. 즉, /dev/sdb아래 예제 대신을 사용 /dev/sdb1합니다. 이것은 섹터 정렬 문제를 피한다. Linux 기반 OS에서만 볼 수있는 볼륨의 경우 단점이 없지만 멀티 부팅 컴퓨터 의 이동식 볼륨 또는 내부 볼륨 에서이 작업을 수행하지 않는 것이 좋습니다. OS (예 : Windows 및 macOS)는 파티션이없는 하드 드라이브가 나타날 때마다 포맷 할 것을 제안합니다. 파일 시스템을 파티션에 배치하면이 문제가 해결됩니다.

  3. 파티션을 포맷하십시오 :

    # mkfs.xfs -L somelabel /dev/sdb1
    
  4. /etc/fstab항목을 추가하십시오 .

    LABEL=somelabel    /some/mount/point    xfs     defaults   0 0
    
  5. 마운트!

     # mount /some/mount/point
    

LVM 경로를 내려 가려면 위의 단계는 기본적으로 아래의 사용자 bsd대답 에있는 두 번째 명령 세트의 더 자세한 버전입니다 . 위의 명령 전에 첫 번째 명령 세트를 수행해야합니다.

LVM은 복잡한 비용으로 특정 이점을 제공합니다. 예를 들어, 나중에 더 많은 물리적 볼륨을 추가하여 LVM 볼륨 그룹을 "증가"하여 논리적 볼륨 ( "파티션")을 확장 할 공간을 만들 수 있습니다. 음량. (내가 복잡성에 대해 무엇을 의미하는지 보시겠습니까? :))


4
ZFS 부분은 논쟁의 여지가 있습니다. 리눅스 포트는 2010 년부터 먼 길을 왔습니다. XFS와 비교할 때 많은 장점이 있습니다
TheLQ

GPT / MBR에 관해서는 그것이 /boot일부인 경우에만 실제로 적용되지 는 /않습니까? MBR이 /작은 /boot권리 만 마운트해야한다면 얼마나 큰지 신경 쓰지 않아야 합니까? 내가 틀렸을 수도있다.
jonescb

1
@jonescb :의 위치 /boot는 MBR의 한계와 관련이 없습니다. 2TB가 넘는 파티션이 필요한 경우 MBR 파티셔닝을 사용할 수 없습니다. 그것은 이다 그것을 넣어 GPT에서 부팅에 대한 BIOS 지원의 부족을 해결할 수 있습니다, 그러나, 사실 /boot작은 MBR-분할 된 디스크에. 커널이 가동되면 GPT 파티션 테이블을 해석하는 방법을 알고 있기 때문에 BIOS 제한에 대해 걱정할 필요가 없습니다. 컴퓨터가 EFI 기반 시스템 인 경우 EFI가 GPT를 이해하므로이 춤을 수행 할 필요가 없습니다.
워렌 영

16

다른 제안에 대한 대안으로.
디스크를 전혀 분할하지 않아도됩니다. 하나 이상의 논리 볼륨을
사용하여 볼륨 그룹을 간단하게 만들 수 있습니다 .

pvcreate /dev/sdb
vgcreate data /dev/sdb
lvcreate --name dump -L '100%VG' data

이제 원하는 파일 시스템 유형으로 포맷 할 수있는 논리 볼륨이 있습니다.

mkfs.XXXX /dev/mapper/data-dump #<- XXXX can be ext4, xfs, btrfs, reiser
mount /dev/mapper/data-dump /mntpt

LVM은 기본적으로 고급 분할 형식입니다. 모든 공간을 사용하여 단일 LV를 만들려는 경우 LVM을 사용하는 것은 의미가 없으므로 전체 디스크 장치에서 mkfs를 직접 사용할 수도 있습니다.
psusi

4
라이브 데이터의 스냅 샷, 크기 조정 가능, 여러 메타 데이터 복사본에 대한 LV의 추가 도구가 없습니다. 장치의 간단한 fs보다 훨씬 유연합니다.
bsd

1
처음에 메타 데이터 (partition table)가없는 경우 여러 메타 데이터 사본이 필요하지 않습니다. 볼륨을 추가 / 확장 할 때와 같이 스냅 샷에는 여유 공간이 필요하므로, 바로 공간에서 모든 공간을 사용하여 단일 논리 볼륨을 만들면 무의미하게 렌더링됩니다. LVM의 기능을 원한다면 더 작은 볼륨으로 시작하여 나중에 사용할 수있는 충분한 여유 공간이 있어야합니다.
psusi

이 개인의 경우에는 LVM을 권장하지 않았으며 단순히 "기타"파티셔닝, 비 파티셔닝 답변 / 솔루션의 대안으로 나열했습니다. 모든 답변을 읽고 자신의 연구를 수행 한 다음 자신의 필요에 가장 적합한 행동 과정을 결정하는 것은 그녀의 몫입니다.
bsd

3
하나의 LV 만 있어도 LVM의 장점은 나중에 스토리지를 쉽게 추가 할 수 있다는 것입니다.
plugwash

6

질문에 대한 질문 : 당신은 ' 22TB 디스크 파티션 하는 방법 '을 물었고 다시 질문에 22TB 파티션을 원한다고 말했습니다. 그래서 이것은 처음부터 모호한 것입니다.

22TB의 공간을 지원할 수있는 단일 블록 장치가 이미 있으면 전체 22TB 파티션을 이미 보유하고있는 것입니다. 파일 시스템 만 있으면 시스템 프로세스별로 장치를 읽고 쓸 수 있고 마운트 할 수 있습니다. 더욱이, 22TB의 데이터 증가를 지원하고 확장 할 수있는 파일 시스템 모듈 / 드라이버를 사용하여 64 비트 모드로 실행되는 Linux 커널이 있어야합니다. 용이함. 성능은 전혀 다른 차원입니다. 이 경우 XFS64 비트 파일 시스템이고 최대 백만 테라 바이트의 파일 시스템을 처리 할 수 ​​있기 때문에 파일 시스템으로 선택하기로합니다. 최대 9 개의 EXABYTES를 지원합니다.

2^63  = 9 x 1018 = 9 exabytes 

XFS에 대한 자세한 내용은 http://oss.sgi.com/projects/xfs/ 를 참조하십시오.

거대한 22TB 블록 장치를 추가 gparted로 분할하려면 장치를 사용 가능한 파티션으로 분할 한 다음 파일 시스템으로 포맷하여 마운트 가능하게하십시오.

하드웨어 RAID 컨트롤러가있는 것 같습니다. DELL perc RAID 컨트롤러가 있다고 언급했기 때문에 어떤 RAID 구성 (정확히 어떤 RAID 레벨을 사용하고 있습니까?)과 대부분의 경우, 22TB의 사용 공간을 확보하지 못할 것입니다.


xfs도 제안하려고했지만 xfs_check는 많은 양의 메모리와 w / 22G fs를 실행하는 데 오랜 시간이 걸립니다. 물리적 스왑과 스왑 사이에서 확인하려면 최소한 32G가 필요합니다. 즉, '데이터 덤프'에서 fs를 확인하려는 경우 (즉,;)
bsd

@bdowning, 22T fs로 수정하고 싶을 수도 있습니다 :)
Nikhil Mulley

22TB Raid 5입니다. 디스크가 많이 있습니다 :)
LVLAaron

그것은 오타 (brain fart)였습니다. LSI Megaraid (Dell Perc와 동일한 카드)를 사용하는 동일한 장치 (10TB)
bsd

@bdowning : xfs_check실제로 많은 메모리를 사용하지만 매뉴얼 페이지 (8) 에는 다음과 같이 언급되어 있습니다. " 사용을 xfs_check권장하지 않습니다. xfs_repair -n확장 성과 속도를 높이 려면 대신 사용하십시오 . ".
Cristian Ciupitu

4

ZFS를 사용할 때 파티션이 필요하지 않습니다. 기본 장치를 사용하지 않으려는 경우 22TB 장치와 파일 시스템에 ZFS 풀을 만들면됩니다. 어떤 이유로 zpool이 전체 ​​디스크 사용을 지원하지 않는 경우 먼저 내부에서 사용 가능한 전체 공간을 사용하여 EFI 레이블과 파티션을 만든 다음 해당 파티션을 사용하여 풀을 만듭니다.

여러 가지 이유로, 그러한 큰 파일 시스템에 ZFS 이외의 것을 사용하지 않는 것이 좋습니다. 가장 확실한 것은 잔인한 전원 차단 (예 : 커널 패닉 또는 전원 부족)이있는 경우 fsck가 기존 파일 시스템을 복구하는 데 시간이 오래 걸릴 수 있다는 것입니다. 반면 ZFS는 fsck가 필요 없으므로 풀을 즉시 가져옵니다.

하드웨어 RAID 구성을 중단하고 12 개의 장치를 JBOD로 사용하여 소프트웨어 RAID 기능을 활용하여 ZFS 풀을 구축하는 것이 좋습니다. 목표가 성능 인 경우 디스크 쌍을 미러링하고 목표가 최대 공간 인 경우 RAIDZ, RAIDZ2 또는 RAIDZ3 구성을 사용할 수 있습니다. 그렇게하면 데이터의 신뢰성과 솔루션의 내결함성이 크게 향상됩니다.


1
나는 이것이 오래된 질문에 대한 오래된 대답이라는 것을 알고 있지만 .... ZFS를 사용하는 경우 가장 좋은 옵션은 RAID 배열을 파괴하고 JBOD에 대해 RAID 컨트롤러를 구성하여 Linux가 각 개별 디스크를 볼 수 있도록 한 다음 미러링 된 쌍을 만드는 것입니다 개별 디스크에서 (더 적은 용량, 우수한 성능) 또는 RAIDZ / Z2 / Z3 (더 많은 용량, 부족한 성능). ZFS가 디스크 자체를 처리하지 않고 기존 RAID 위에 계층화하면 ZFS의 이점을 많이 잃게됩니다. btrfs에도 동일하게 적용됩니다.
cas

@cas 당신은 확실히 맞습니다. 답변이 업데이트되었습니다. "22TB 디스크를 파티션하는 방법"이 아니라 OP 디스크 질문에 중점을 두었지만 "디스크 구성을 어떻게 처리하겠습니까?"
jlliagre 2016 년

3

현재 표준 파티션 테이블을 사용하여 이것이 가능한지 확실하지 않습니다. 표준 파티션 테이블 체계에서 볼륨은 2 32 섹터 로 제한됩니다 . 섹터 당 512 바이트를 사용하면 약 2TB의 섹터에 할당 할 숫자가 부족합니다.

그러나 표준 파티션 대신 GUID 파티션 테이블을 사용하는 경우이 작업을 수행 할 수 있어야합니다. GUID 파티션 테이블을 사용하면 볼륨을 zettabyte 범위로 확장 할 수 있습니다. 대부분의 Linux 배포판은 GUID 볼륨에서 부팅 할 수 있지만 현재 Windows 버전 (EFI의 Windows 7 제외)은 없습니다.

fdisk와 같은 일부 도구는 GUID 볼륨에서 작동하지 않지만 GParted와 같은 다른 도구는 작동하지 않습니다. GUID 파티션 테이블을 생성하면 해당 크기의 볼륨 (예 : EXT4)을 지원하는 몇 가지 일반적인 파일 시스템 중 하나를 사용하여 볼륨을 생성 할 수 있습니다.


32 비트 시스템에있을 수 있습니다. 버전 8.04 이상에서 지원되는 64 비트 Ubuntu 서버에서 3.5TB 파티션을 만들 수있었습니다. 말하자면 cyberciti.biz/tips/...
Karlson

내 지식으로는 파일 시스템을 하드 드라이브에 놓기 위해 파티션 테이블이 필요하지 않을 수도 있습니다. 또한 OP에 따르면 부팅 드라이브가 아니라 단지 큰 덤프 공간입니다.
Karlson

3

다른 곳에서 언급했듯이 파티션 테이블의 경우 GPT 는 최대 9.4 ZiB 크기 (9.4 × 10 21 바이트)의 파티션을 지원하므로 22TiB에 필요한 것보다 훨씬 뛰어난 옵션 입니다.

파일 시스템의 경우 Linux에서 BTRFS 는 우수한 COW ( Copy-On-Write) 파일 시스템입니다.

  1. 기록 중 복사 속성은 중복 파일이 두 번 저장되지 않음을 의미합니다.
  2. 즉석 압축 기능이있어 데이터를 LZO 또는 GZip을 통해 실행하기 전에 디스크에 쓰거나 디스크에서 읽고 실제 디스크 공간을 절약 할 수 있습니다.
  3. 오버 헤드없이 RAID-1, RAID-10, RAID-5 및 RAID-6 구성의 중복성을 지원합니다.
  4. 속도가 중요한 경우 RAID-0도 지원합니다.
  5. 하위 볼륨, 스냅 샷 등도 제공합니다.
  6. 거의 모든 파일 시스템 작업이 온라인 으로 수행 되므로 일반적으로 파일 시스템을 마운트 해제하지 않아도됩니다.

기능면에서 ZFS와 비슷하지만 기본 Linux 커널의 일부입니다.


BTRFS FAQ 테스트 및 개발 목적을 제외하고 패리티 RAID 기능을 사용하지 않도록 경고 합니다. 파일 시스템을 먹을 수있는 버그가 있습니다. 링크에서 더 많은 정보.
Warren Young

1

중복성 또는 백업 기능을 찾고 있지 않은 경우 다음을 수행 할 수 있습니다.

mkfs -t ext4 /dev/sdb

4
사용해 보셨습니까? mkfs파일 시스템을 지정하도록 변경했습니다
Karlson

1
@AaronJAnderson 설명이 도움이 될 것입니다.
n0pe

장치가 2TB를 초과하면이 명령이 작동하지 않습니다
LVLAaron

1
내가 사용 3.5TB 볼륨을 생성 한 @AaronJAnderson reiserfs하고 ext3그렇게하면 ext4주장이 16 엑사 바이트의 볼륨의 최대 크기를 가지고 내가 어떤 이유로 그 22TB하지 않습니다 일을 볼 수 없습니다.
Karlson

1
이 Linux 버전과 함께 제공되는 e2fsutils 버전 (현재 대부분의 다른 시스템은 16TB 이상을 지원하지 않음)
LVLAaron
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.