파티션 테이블을 올바르게 정렬하려면 어떻게합니까?


19

첫 RAID5 어레이를 구축하는 중입니다. mdadm을 사용하여 다음 설정을 만들었습니다.

root@bondigas:~# mdadm --detail /dev/md1
/dev/md1:
        Version : 00.90
  Creation Time : Wed Oct 20 20:00:41 2010
     Raid Level : raid5
     Array Size : 5860543488 (5589.05 GiB 6001.20 GB)
  Used Dev Size : 1953514496 (1863.02 GiB 2000.40 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Wed Oct 20 20:13:48 2010
          State : clean, degraded, recovering
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

 Rebuild Status : 1% complete

           UUID : f6dc829e:aa29b476:edd1ef19:85032322 (local to host bondigas)
         Events : 0.12

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       4       8       64        3      spare rebuilding   /dev/sde

그 동안 나는 다음 명령으로 짐승을 포맷하기로 결정했습니다.

root@bondigas:~# mkfs.ext4 /dev/md1p1 
mke2fs 1.41.11 (14-Mar-2010)
/dev/md1p1 alignment is offset by 63488 bytes.
This may result in very poor performance, (re)-partitioning suggested.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=16 blocks, Stripe width=48 blocks
97853440 inodes, 391394047 blocks
19569702 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
11945 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848

Writing inode tables: ^C 27/11945
root@bondigas:~# ^C

"/ dev / md1p1 정렬이 63488 바이트만큼 오프셋됩니다."에 대해 어떻게해야하는지 잘 모르겠습니다. 디스크를 올바르게 분할하여 올바르게 포맷 할 수있는 방법.

답변:


17

많은 곳에서 정렬이 나타나기 때문에-

  • 4k 블록의 "고급 포맷"하드 드라이브
  • SSD
  • RAID
  • LVM

-질문에 대해 조금 확장하겠습니다.

파티션 정렬

"4kB 섹터 디스크의 Linux" (IBM developerWorks)는 fdisk, parted 및 GPT fdisk의 단계를 안내합니다.

fdisk로 :

sudo fdisk /dev/XXX 
c # turn off DOS compatibility
u # switch to sector units
p # print current partitions, check that start sectors are multiples of 8

# for a new partition:
n # new partition
<select primary/secondary and partition #>
first sector: 2048 
  # 2048 is default in recent fdisk, 
  # and is compatible with Vista and Win 7, 
  # 4k-sector disks and all common RAID stripe sizes

파일 시스템 정렬

이것은 주로 RAID (레벨 0, 5 및 6, 레벨 1이 아님)와 관련이 있습니다. 스트라이프 크기에 대한 지식으로 파일 시스템을 작성하면 파일 시스템의 성능이 향상됩니다.

파일 시스템을 SSD 지우기 블록 크기 (Theodore Tso, Linux 커널 개발자) 에 맞추려면 SSD에도 사용할 수 있습니다 .

OP 포스트 mkfs에서 최적의 설정을 자동 감지 한 것이므로 추가 조치가 필요하지 않습니다.

확인하려는 경우 RAID 의 관련 매개 변수는 다음과 같습니다.

  • 블록 크기 (파일 시스템 블록 크기, 예 : 4096)
  • 스트라이프 크기 (mdadm 청크 크기와 동일, 예 : 64k)
  • 보폭 : (예 : stripe size / block size 64k / 4k = 16)
  • 스트라이프 너비 : (예 : stride * #-of-data-disks 4 개의 디스크 RAID 5는 3 개의 데이터 디스크, 16 * 3 = 48)

에서 리눅스 위키 레이드 . 다른 RAID 레벨과 디스크 수에 대해서는 이 간단한 계산기 를 참조하십시오 .

들어 SSD 삭제 블록 정렬 매개 변수는 다음과 같습니다

  • fs 블록 크기 (예 : 4096)
  • SSD 지우기 블록 크기 (예 : 128k)
  • 스트라이프 너비 : 지우기 블록 크기 / fs- 블록 크기 (예 : 128k / 4k = 32)

에서 시어 도어의 SSD 포스트 .

LVM 범위 정렬

잠재적 인 문제는 LVM이 192k 헤더를 생성한다는 것입니다. 이는 4k의 배수이므로 (4k 블록 디스크에서는 문제가되지 않지만) RAID 스트라이프 크기 (LVM이 RAID에서 실행될 경우) 또는 SSD 지우기 블록 크기 (LVM이 SSD에서 실행될 경우)의 배수가 아닐 수 있습니다.

해결 방법 은 Theodore의 게시물 을 참조하십시오 .


@Marco 어떻게 그렇게? IBM Developer Works의 첫 번째 제품은 정렬되지 않은 파티션 사용에 대한 쓰기 성능 저하에 대한 벤치 마크 그래프와 RAID의 사이드 바도 포함합니다. SSD 정렬에 대한 Tso의 블로그 게시물은 내가 작성한 이후로 두 번 이상 이동했습니다. 링크를 다시 업데이트했지만 계속 작동한다는 보장은 없습니다.
jg-faustus

SSD의 대안 링크 : SSD 파티션 정렬
jg-faustus

8

내 친구는 /dev/md1아무것도 파티션하지 않고 mkfs.ex4를 바로 사용할 수 있다고 지적 했으므로 파티션을 삭제하고 포맷 한 것처럼 보입니다.


6

이 방법이 가장 쉬운 방법이라는 것을 알았습니다

parted -a opt /dev/md0
(parted) u MiB
(parted) rm 1
(parted) mkpart primary 1 100%

또는 대체 더러운 방법은 단순히 다음과 같이 진행됩니다.

(parted) mkpart primary ext4 1 -1

parted 문서는 parted가 자동으로 파티션 최적화를 시도 할 수 있도록하려면 MiB 또는 GiB가 아닌 MB 및 GB 사용을 제안합니다.
Felipe Alvarez

1

mkfs.ext4는 RAID의 파일 시스템이 64 KiB 경계에서 시작되기를 원합니다. 전체 디스크를 사용하는 경우 디스크는 0에서 시작하며 물론 64 KiB의 배수입니다.

오늘날 대부분의 파티셔닝 도구는 기본적으로 1MiB 경계를 사용합니다 (fdisk는 그렇지 않습니다).

그 이유는 대부분의 하드 디스크 및 SSD가 장치에서 논리 섹터보다 훨씬 큰 물리 섹터를 사용하기 때문입니다. 그 결과 디스크에서 512 바이트의 논리 섹터를 읽는 경우 하드웨어는 실제로 훨씬 더 많은 양의 데이터를 읽어야합니다.

소프트웨어 RAID 장치의 경우 비슷한 현상이 발생합니다. 해당 장치의 데이터는 기본 mdadm 설정으로 64KiB의 "청크"에 저장됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.