쓰기 속도 요구 사항 : 1.1GB / s 가능성?


29

우리는 최고 성능에서 시간당 50GB ( "쓰기 헤드") x 75GB 의 데이터 를 푸시 할 수있는 기계를 작동시킬 것 입니다. 쓰기 속도가 ~ 1100MB / s의 최고 성능입니다. 머신에서 그것을 얻으려면 두 개의 10GBi 라인이 필요합니다. 내 질문은 어떤 종류의 서버 + 기술이 이러한 데이터 흐름을 처리 / 저장할 수 있습니까?

현재 데이터 저장을 위해 ZFS와 함께 작업하지만 쓰기 속도는 문제가되지 않았습니다. ZFS (리눅스의 zfs)가 옵션일까요? 우리는 또한 많은 데이터를 저장해야하는데, "IT 안내서"는 총 50-75TB 정도를 제안합니다. 따라서 우리가 처음 태어난 아이를 제공하지 않는 한 모든 SSD가 될 수는 없습니다.

훌륭한 답변을 기반으로 한 추가 내용 :

  • 최대 시간은 최대 50x75GB / 시간으로 24 시간 미만 (대부분 <6 시간)
  • 우리는 이것이 곧 일어날 것으로 예상하지 않습니다. 대부분 5-10x75GB / hour를 실행할 것입니다.
  • 사전 알파 머신이지만 요구 사항을 충족해야합니다 (많은 물음표가 사용 중임에도 불구하고)
  • 머신에서 서버로의 연결로 NFS 를 사용 합니다.
  • 레이아웃 : 생성 기계-> 저장소 (이것)-> (안전한 공격대 6)-> 계산 클러스터
  • 따라서 읽기 속도는 필수 는 아니지만 계산 클러스터에서 사용하는 것이 좋습니다 (그러나 이것은 완전히 선택 사항입니다)
  • 대부분 큰 데이터 파일 일 것입니다.

8
메가 비트 또는 메가 바이트처럼 mb? 바이트를 비난하려면 MBi MiBi MByte 또는 MB를 사용하십시오. 또한 2 10 gbit 라인은 2400 MByte / s를 제공합니다
mzhaase

1
이제 더 분명합니다. 감사합니다. 질문이 더 있습니다. 최고 성능은 1.1GBps이지만 평균은 얼마입니까? 이 스파이크는 얼마나 오래 지속됩니까? 그리고 수용하고자 하는 최소 continouus 처리량은 얼마입니까? 쓰기가 하나의 큰 파일입니까 아니면 여러 개의 작은 파일입니까? 어떤 종류의 프로토콜이 사용됩니까? 어떤 종류의 중복성을 원하십니까? 그것은 일종의 의료 또는 과학 장비처럼 들립니다. 데이터 시트를 연결할 수 있습니까? ZFS를 이미 사용하고 있으므로 ZFS 전문 스토리지 회사에 연락 할 수 있습니다. 그들은 당신을 위해 시스템을 지정할 수 있습니다.
mzhaase

2
이것이 실제로 단일 머신으로 수행되어야합니까? 여러 머신에 대한로드 밸런싱이 더 쉬워 질 수 있습니다. 공유 스토리지를 사용하거나 나중에 데이터를 통합 할 수 있습니다. AWS에서는 ELB, 자동 확장, 많은 EC2 인스턴스 및 EFS를 사용할 수 있지만 하드웨어를 원하는 것처럼 들립니다. 귀하의 질문에 유스 케이스가 잘 설명되어 있지 않습니다.
Tim

1
참고로 "피크"성능이 필요하지 않습니다. 1.1GBpS의 "지속 된"성능이 필요합니다.
jsbueno

1
@jsbueno 맞습니다. 그러나 활성화 할 쓰기 헤드 수를 선택할 수 있으므로 1GB / s는 "가장 최악의 경우"이지만 시간이 걸릴 수 있다는 점을 고려하면 성능이 지속됩니다.
SvennD

답변:


18

물론 ... Linux에서 ZFS는 올바르게 설계된다면 가능합니다. ZFS 디자인열악한 경우가 많지만 요구 사항을 충족 할 수 있습니다.

따라서 주요 결정 요인은이 데이터 스토리지 시스템에 연결하는 방법입니다. NFS입니까? CIFS? 클라이언트가 스토리지에 어떻게 연결되어 있습니까? 또는 등 처리가 완료 스토리지 시스템?

좀 더 자세한 내용을 작성하면 도움을받을 수 있는지 확인할 수 있습니다.

예를 들어 이것이 NFS이고 동기식 마운트 인 경우 Linux에서 ZFS를 확장하여 쓰기 성능 요구를 충족시키고 여전히 장기 스토리지 용량 요구 사항을 유지할 수 있습니다. 데이터를 압축 할 수 있습니까? 각 클라이언트는 어떻게 연결되어 있습니까? 기가비트 이더넷?


편집하다:

좋아, 물어볼 게

대략 $ 17k- $ 23k 이며 2U 랙 공간에 적합한 사양입니다 .

HP ProLiant DL380 Gen9 2U Rackmount
2 x Intel E5-2620v3 or v4 CPUs (or better)
128GB RAM
2 x 900GB Enterprise SAS OS drives 
12 x 8TB Nearline SAS drives
1 or 2 x Intel P3608 1.6TB NVMe drives

이 설정은 하드웨어 RAID6 또는 ZFS RAIDZ2를 사용하여 80TB의 사용 가능한 공간을 제공합니다.

초점은 NFS 기반 성능 (동기식 쓰기 가정)이므로 P3608 NVMe 드라이브 (스트라이프 SLOG)를 사용하여 모든 것을 쉽게 흡수 할 수 있습니다. 순차적 쓰기에서 3GB / s를 수용 할 수 있으며 설명한 작업 부하를 지속적으로 처리 할 수있을만큼 높은 내구성 등급을 가질 수 있습니다. SLOG 사용 사례에서 일부 보호 기능을 추가하기 위해 드라이브를 쉽게 초과 프로비저닝 할 수 있습니다.

NFS 워크로드를 사용하면 쓰기 작업이 통합되어 회전 디스크로 플러시됩니다. Linux에서는 15-30 초마다 플러시하도록 조정합니다. 회전 디스크가이를 처리 할 수 ​​있으며이 데이터가 압축 가능한 경우 훨씬 더 많은 이점을 얻을 수 있습니다.

4 개의 개방형 PCIe 슬롯과 이중 포트 10GbE FLR 어댑터 용 추가 포트를 사용하여 서버를 확장 할 수 있습니다. 따라서 네트워킹 유연성이 있습니다.


ewwwite 감사합니다; 우리는 NFS를 사용할 것이며, 선택적으로 클라이언트 (머신)는 오직 하나뿐입니다. (그러나 어떤 처리 방법 또는 알 수없는 방법) 우리는 RAID 6 스토리지 서버에서 "공간"을 사용할 수 있습니다.
SvennD

@SvennD NFS이고 동기식 마운트를 사용하는 경우 Linux에서 ZFS를 확장하여 쓰기 성능 요구를 충족시키고 여전히 장기 스토리지 용량 요구 사항을 유지할 수 있습니다. 데이터를 압축 할 수 있습니까? 그것은 또 다른 요소입니다. 그러나 이것의 범위는 온라인 포럼에서 무료로 제공 할 수있는 조언을 넘어서는 것입니다. 내 연락처 정보는 ServerFault 프로필 에서 확인할 수 있습니다 . 더 논의해야 할 경우 저에게 연락하십시오.
ewwhite

5
ZFS는 당신이 원하는 것을 능가합니다. 첫 번째 문제는 실제 하드웨어 가이를 가능하게하는 것입니다. 주의하지 않으면 어댑터 나 백플레인 레벨에서 실수로 1GB / sec보다 더 빠르게 병목 현상을 발생시키는 것이 매우 쉽습니다. 그 부분이 제대로되었는지 확인한 다음 ZFS 측의 문제를 피하는 방법에 대해 문의하십시오.
Jim Salter

@SvennD 기본 설계 사양과 거친 비용으로 편집되었습니다.
ewwhite

HP 서버보다 Oracle X6-2L 을 권장한다고 생각 합니다. Oracle 서버에는 기본적으로 4 개의 10GB 네트워크 포트가 제공됩니다. 그리고 필자의 경험에 따르면 HP 서버가 동급 Oracle 상자보다 비싸다는 점에서 ILOM, ILOM 소프트웨어 라이선싱 등으로 인해 HP의 노골적 사고가 사라질 것입니다. 저의 경험에 따르면 Oracle 박스가 HP 박스보다 성능이 뛰어나며 @JimSalter가 언급 한 하드웨어 병목 현상 중 하나가 HP 박스보다 훨씬 적습니다. 그렇습니다. 오라클에서 구매하는 것은 고통 스럽습니다.
Andrew Henle

23

이러한 극단적 인 쓰기 속도를 위해서는 ZFS, BTRFS 또는 CoW 파일 시스템을 사용하는 것이 좋습니다. 대용량 / 스트리밍 전송에서 매우 효율적인 XFS를 사용합니다.

구체적인 조언을 제공하기 위해 누락 된 정보가 많이 있습니다 (이러한 데이터에 어떻게 액세스 할 계획입니까? 읽기 속도가 중요합니까? 큰 덩어리로 쓰려고합니까? 등). 그러나 몇 가지 일반적인 조언은 다음과 같습니다.

  • 원시 파티션 또는 지방 LVM 볼륨 위에 XFS를 사용하십시오 (씬 볼륨을 사용하지 마십시오)
  • 대량의 데이터 쓰기에 효율적으로 대처하기 위해 ioblock 크기 조정
  • powerloss 보호 쓰기 캐시가있는 하드웨어 RAID 카드를 사용하십시오. 하드웨어 RAID 사용에 문제가없는 경우 소프트웨어 RAID10 구성표를 사용하십시오 (패리티 기반 RAID 모드는 피함)
  • LACP와 함께 2 개의 10Gb / s 네트워크 인터페이스 사용 (링크 집계)
  • 점보 프레임을 활성화해야합니다
  • NFS를 사용할 때는 확장 성을 높이기 위해 pNFS (v4.1) 를 사용하는 것이 좋습니다
  • 확실히 다른 많은 것들 ...

3
또한 XFS를 사용하는 경우 저널을 SSD RAID1 쌍에 놓으십시오.
TB

2
powerloss로 보호 된 쓰기 저장 캐시가있는 RAID 카드를 사용하는 경우 저널은 기본 배열에 남아있을 수 있습니다. 쓰기 캐시는 저널 쓰기를 흡수하고 통합합니다. 또한 OP가 설명하는 것에서 메타 데이터로드는 데이터 스트리밍에 비해 상당히 낮아야합니다.
shodanshok

2
ZFS는 제대로 작동하며 XFS보다 훨씬 빠릅니다. 물론,이를 올바르게 설정하고 ZIL 및 SLOG를위한 RAM 및 SSD가 있어야하지만 필요한 속도에는 문제가되지 않을 것입니다.
John Keates

3
나는 리눅스에서 XFS를 오래된 기술로 본다. OP는 하드웨어 RAID 위에서 ZFS를 쉽게 실행할 수 있습니다. ZFS를 권장하는 이유는 모든 SSD 풀이 필요없이 대기 시간이 짧은 SLOG가 들어오는 NFS 동기 쓰기를 흡수하도록하기 위해서입니다.
ewwhite

6
쉘비 코브라는 "오래된 기술"이지만 여전히 대부분의 차량을 게이트 밖으로 피울 수 있습니다. ZFS는 처음에는 고성능 파일 시스템으로 설계되지 않았으며 특정 워크로드에서 빠른 속도로 조정 가능하지만 기본적으로는 설계되지 않았습니다. 몇 가지 파일 마운트 및 포맷 옵션으로 XFS가 제공하는 것을 능가하려면 더 많은 하드웨어, 더 많은 메모리 및 많은 조정이 필요합니다.
TB

4

25Gbps 이더넷은 이미 경계 주류 인 반면 PCIe 기반 NVMe는 해당 트래픽을 쉽게 랩핑합니다.

참고로 최근 6 개의 NVMe 드라이브가있는 4 개의 일반 듀얼 제온 서버 (이 경우에는 HPE DL380 Gen9)를 사용하여 작은 '로그 캡처'솔루션을 구축했습니다. IP over Infiniband를 사용했지만 25 / 40Gbps NIC는 동일합니다. 서버 당 최대 8GBps를 캡처하고 있습니다.

기본적으로 저렴하지는 않지만 요즘 매우 가능합니다.


1
네,하지만 NVMe에 ~ 50TB를 어떻게 저장합니까? 스피너는 싸기 때문에 속도를
최고로

좋은 점은 현실적으로 하나의 서버에서 4 x 4TB 만 가져야한다는 것입니다. 여러 서버를 사용합니다. 아마도 당신은 할 수 없습니까? 그렇지 않으면 그것은 단지 R10에서 2.5 "10krpm의로드입니다
Chopper3

원하지 않는 것이 더 좋아서 문에 들어가는 것 외에는 사양이 필요하지 않으며 여러 서버의 오버 헤드로 인한 악몽을 원하지 않습니다. 한 대의 기계 만 R10이 충분히 빠를까요? (하드웨어 습격?)
SvennD

우리는 사용되지 않은 예비 키트로 만든 Windows 2012R2 상자를 가지고 있으며 NAS로 사용하며 내부적으로 6 x 400GB SAS SSD, 각각 25 x 900GB 10k SAS 디스크 및 D6000이있는 8 x D2600 선반이 있습니다. 70 x 4TB 디스크가있는 선반에 10Gbps NIC를 쉽게 넘칠 수 있습니다. 아직 25Gb NIC로는 시도하지 않았습니다.
Chopper3

1
@MSalters 200MB / s 범위의 전송 속도를 가진 많은 8 / 10TB PMR (비 SMR) 드라이브가 있습니다. RAID10 및 RAID6의 12 또는 16 드라이브 어레이는 필요한 1.1GB / s 전송 속도를 쉽게 초과해야합니다.
shodanshok

2

큰 소리처럼 들리지 않습니다. 당사의 현지 하드웨어 공급 업체는이를 표준 제품 으로 제공합니다. CCTV 녹화 모드에서 1400MB / s를 지속 할 수 있으며, 이는 최고 요구 사항보다 어렵습니다.

(링크는 기본 12GB 구성이지만 20x4TB도 옵션입니다.이 특정 모델 서버에 대한 개인적인 경험은 없습니다.)


4
"표준 제품"이란 20 x 600gb sas 15k 및 3 x enterprise ssd가있는 "블랙 소프트웨어 상자"를 의미합니다. 그것의 공정한 제안, 우리는 우리의 하드웨어 공급 업체와 비슷한 것을 얻었지만 라이센스 비용은 기본적으로 무료 인 것입니다. (ZFS) 빌드를 공유해 주셔서 감사합니다! (nice link)
SvennD

2

1100MB / s의 순차적 쓰기는 최신 하드웨어의 문제가 아닙니다. 8x5900 RPM 랩탑 드라이브, 2x15000 RPM 드라이브 및 2x7200 RPM 드라이브를 사용한 나의 홈 설정은 16GB 일회성 페이로드로 300MB / s를 유지합니다.

네트워크는 10GbE (파이버 케이블, 이더넷의 9000 MTU)이며 응용 프로그램 계층은 Samba 3.0입니다. 스토리지는 3 개의 4 드라이브 raid5 볼륨에 3 개의 스트라이프가있는 raid50으로 구성됩니다. 컨트롤러는 포트 당 최대 6Gb / s의 LSI MegaRAID SAS 9271-8i입니다 (저는 느린 포트 멀티 플라이어가 있습니다).

노련한 시스템 관리자에게 문의하면 요구 사항을 충족시킬 컨트롤러와 드라이브를 정확하게 알려줄 수 있어야합니다.

12Gb / s 컨트롤러를 사용하여 각각 8 개의 7200 RPM 드라이브 (거의 모든 드라이브에서 수행)의 2 개의 미러 스트라이프를 구성 할 수 있다고 생각합니다. 3-4 TCP 연결을 시작하여 링크를 포화시키고 단일 10GbE 카드 쌍으로 처리 할 수없는 경우 4 개의 카드를 사용하십시오.


2

접선이지만 이중 10GbE 링크 대신 InfiniBand 사용을 고려하십시오. 56Gbps Infiniband 카드는 매우 저렴하거나 100Gbps 카드를 훨씬 더 많이 얻을 수 없으며 Linux에서는 IB를 통한 RDMA와 함께 NFS를 쉽게 사용할 수 있습니다. 처리해). 스위치가 필요 없으며 InfiniBand 카드 2 개와 직접 연결 케이블 (또는 더 긴 거리가 필요한 경우 InfiniBand 파이버 케이블)이 필요합니다.

MCB191A-FCAT와 같은 단일 포트 Mellanox 56Gbps 카드 (8x PCIe 3.0)는 700 달러 미만이며 2 미터 구리 직접 연결 케이블은 80 달러입니다.

모든 사용 사례에서 성능은 일반적으로 10GbE를 물 밖으로 날려 버립니다. InfiniBand를 모두 사용할 수없는 많은 다른 클라이언트에서 서버에 액세스 할 필요가 없다면 Mellanox의 스위치는 10GbE와 40GbE를 IB에 연결할 수 있지만 단점은 조금 더 있습니다. 당연하지).


1

그러나 ZFS를 사용하여이 작업을 수행 할 수 있지만 FreeBSD의 네트워크 스택 속도가 빠르므로 FreeBSD를 사용하는 것이 좋습니다. 단일 시스템에서 100GBit가 가능합니다.

1100MBps는 많이 들리지만, 일반 하드 드라이브 만 사용하여 현실적으로이를 달성 할 수 있습니다. 75TB의 공간이 필요하므로 미러에서 24 개의 8TB 하드 드라이브를 사용할 수 있습니다. 이렇게하면 단일 드라이브의 12 배속 쓰기 속도와 24 배속 드라이브 읽기 속도가 제공됩니다. 이러한 드라이브의 쓰기 속도는 100MBps보다 높기 때문에 대역폭을 쉽게 처리 할 수 ​​있습니다. 쓰기 속도가 매우 느리기 때문에 SMR 드라이브를 얻지 마십시오.

ZFS는 모든 블록에 대한 체크섬을 만듭니다. 이것은 단일 스레드로 구현됩니다. 따라서 차단하지 않으려면 클럭 속도가 상당히 빠른 CPU가 있어야합니다.

그러나 정확한 구현 세부 사항은 세부 사항에 크게 의존합니다.


12
"FreeBSD는 더 빠른 네트워크 스택을 가지고 있습니다"[인용이 필요합니다]
Jim Salter

정확하게. 리눅스는 꽤 능력이 있습니다.
ewwhite

1

우리는 퓨즈 클라이언트를 통해 10G NIC 덤프 데이터를 Gluster 클러스터에 페깅했습니다. 3.0 이후로 달성 할 수있는 성능을 믿지 못할 약간의 튜닝 비트가 필요합니다.

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