소프트웨어 raid5 (md) 위에 ext3 파일 시스템을 만들고 있는데 파일 시스템을 만들 때 (mkfs.ext3 사용) 마운트 할 때 가장 좋은 매개 변수가 무엇인지 궁금합니다.
RAID5 청크 크기는 128k, 어레이에는 3 개의 드라이브, 900GB의 유효 총계가 있습니다. ext4는 옵션이 아닙니다.
편집 : 파일 시스템에는 많은 작은 파일이있는 Gentoo VPS를 포함하여 여러 VPS (가상 개인 컴퓨터)가 있습니다. VPS는 이미지를 사용하지 않고 파일을 파일 시스템에 직접 저장합니다. 또한 500-1000MB 파일이 많이 있습니다.
감사합니다, 매틱
답변
스트라이프 크기를 최적화하는 아이디어는이를 최적화하여 일반적인 워크로드에서 대부분의 읽기 요청을 단일 읽기로 수행 할 수 있고 모든 데이터 디스크에 균등하게 분배하는 것입니다. 3 개의 디스크 RAID-5 세트의 경우 데이터 디스크의 양은 2입니다.
예를 들어 일반적인 워크로드가 평균 128kB 인 I / O 읽기 요청을 가정합니다. 디스크 RAID-5가 3 개인 경우 64kB의 청크를 만들려고합니다. 다음과 같이 계산하십시오.
avg request size / number of data disks = chunk size
128kB / 2 = 64kB
이것은 RAID 세트 의 청크 크기이며 아직 파일 시스템을 수행하지 못했습니다.
다음 단계는 파일 시스템이 RAID 세트의 특성과 일치하는지 확인하는 것입니다. 따라서 파일 시스템이 RAID 세트의 청크 크기를 인식하도록하려고합니다. 그런 다음 3 개의 디스크에 수퍼 블록을 균등하게 분배 할 수 있습니다.
이를 위해 mke2fs에 청크의 크기 또는 더 정확하게 청크에 맞는 파일 시스템 블록 수를 알려야합니다. 이를 파일 시스템의 ‘스트라이드’라고합니다.
chunk size / size of filesystem block = stride size
64kB / 4kB = 16
그런 다음 -E stride = 16 옵션을 사용하여 mke2fs를 호출 할 수 있습니다.
페이지 이전에도 언급은 mke2fs를위한 -E 스트라이프 폭 옵션에 대해 이야기하지만, 나 자신 있음을 사용한 적이 없으며, mke2fs를 그것을 언급의 내 버전의 맨 않습니다. 우리가 그것을 사용하고 싶다면 32와 같이 사용합니다. 스트라이프 폭은 스트라이드에 데이터 디스크의 양 (귀하의 경우 2)을 곱하여 계산됩니다.
이제이 문제의 핵심 : 최적의 청크 크기는 무엇입니까? 위에서 설명한 것처럼 I / O 읽기 요청의 평균 크기가 필요합니다. iostat 또는 sar의 출력에서 적절한 열을 확인하여이 값을 얻을 수 있습니다. 장기간에 걸쳐 구성중인 시스템과 비슷한 워크로드가있는 시스템에서이를 수행해야합니다.
섹터, 킬로바이트, 바이트 또는 블록과 같이 값이 사용하는 단위 종류를 알고 있어야합니다.
답변
정확한 작업량에 대한 지식이 없으면 기본값이 최선의 선택 일 것입니다. 어쩌면 -m 0
당신은 루트가 아닌 사용자가 디스크를 작성, 및 / 또는 설정에 대한 걱정하지 않는 경우 dir_index
당신이 디렉토리에있는 파일의 수와 어리석은 일을 할 거라면.
답변
파일 시스템을 RAID 스트라이프 크기에 맞추십시오.
http://wiki.centos.org/HowTos/Disk_Optimization
좋은 요약이 있습니다.
파일 시스템이 올바르게 정렬되면 RAID5에서 RMW를 수행하지 않아도 성능을 향상시킬 수 있습니다.