10G 이더넷을 통해 Samba보다 open-iscsi 쓰기가 2 배 더 느린 이유는 무엇입니까?


9

내 로컬 파일 서버에서 7x HDD 드라이브에 raid-6이 있습니다.

dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync

로컬 속도 테스트는 349MB / s의 쓰기 속도를 제공합니다.

SSD (> 2Gb / s 읽기 속도)에서 Samba에 원격 쓰기를하면 259MB / s 쓰기가 가능합니다. 그러나 iSCSI 드라이브에 대한 원격 쓰기 (Win10 iSCSI 초 기자)는 단지 151Mb / s의 쓰기를 제공합니다.

raid6 구성-128K 청크 크기, stripe_cache_size = 8191. 쓰기 의도 비트 맵은 SSD에 있습니다 (Samsung 860 PRO, 4096K 비트 맵 청크).

옵션으로 마운트 된 어레이 : rw,noatime,nobarrier,commit=999,stripe=128,data=writeback

open-iscsi 설정 : 대상은 4Tb 파일을 기반으로합니다.

쓰기시 iSCSI가 Samba보다 느린 이유는 무엇입니까? iSCSI 쓰기 속도를 향상시키는 방법에 대한 힌트가 있습니까?

각 작업 후에 디스크에 쓰기를 플러시하려는 open-iscsi와 관련이 있다고 생각합니다. 과도한 패리티 다시 쓰기로 인해 raid6에서 쓰기 증폭이 증가합니다. 그러나 어떻게 고칠 지 잘 모르겠습니다. 정전시 현재 기록 된 데이터의 안전성보다 더 중요한 속도를 제공합니다.

부수적으로 오래된 ietd iSCSI 대상은 후기 입 모드 ( IOMode=wb) 를 사용하는 기능이 있었고 지속적인 쓰기 속도가 훨씬 빨랐습니다. 불행히도 현재 유지 관리되지 않은 것 같습니다.


2
네트워크는 어떻습니까? 10 기가? 서버 OS 버전, 커널 버전은 무엇입니까? iscsi 대상과 버전은 무엇입니까? ietd, scst 또는 lio? Open-iscsi는 대상이 아닌 초기자를 제공합니다 ... 쓰기 속도를 측정하기 위해 무엇을 사용하고 있습니까? 대상에서 사용 된 파일 시스템은 무엇입니까?
wazoox

Windows 10에서 QoS가 NIC에서 제거 되었습니까?
yagmoth555

2
이 경우 iSCSI 대상 및 조정 된 네트워크 튜너 블의 구성을 게시하는 것도 신중해야합니다. 최신 커널이있는 Linux 클라이언트에서 open-iscsi 초기자를 사용하여 테스트하면 동일한 대상을 사용하는 초기자를 명확하게 비교할 수 있습니다. 기존 테스트는 Windows 초 기자에 의해 너무 좁아 질 수 있기 때문입니다. 더 많은 데이터 == 더 좋습니다.
스풀러

1
그러나 실제 질문과 관련 하여 iSCSI와 Samba는 매우 다르며 베어 블록 장치에 존재하지 않는 Samba를 사용할 때 VFS 캐싱 계층을 사용하고 있습니다. 성능 차이로 인해 놀랐지 만이 비교 나 iSCSI가 네트워크를 포화 상태로 만드는 데 더 관심이 있습니까? iSCSI가 주요 관심사이고 Samba 성능이 컨텍스트에 대한 사소한 세부 사항 인 경우 질문을보다 명확하게하기 위해 편집 할 수 있습니다 (아마도 더 나은 답변을 얻을 수 있음).
스풀러

테스트에 Windows 10을 사용했지만 어디에서나 사용 된 컴퓨터에 대한 세부 정보가 표시되지 않습니다. (그리고 그러한 테스트에 Windows 클라이언트 OS를 사용하는 이유는 무엇입니까?)
yagmoth555

답변:


6

우선, 이중 패리티 계산으로 인해 RAID-6이 문제입니다. 둘째, MS iSCSI 초 기자에서 iSCSI 대상을 두 번 연결하고 RR 또는 최소 대기열 깊이를 활성화 할 수 있습니다 (불행히도 Win10은 다중 경로 지정을 지원하지 않으므로 대신 Windows Server로 테스트 할 수 있습니다).

실제로 블록 레벨 액세스는 파일 레벨 액세스보다 빠릅니다. Windows 사이트에서 어떤 종류의 벤치마킹 도구를 사용하고 있습니까? diskspd 또는 FIO를 사용하는 것이 좋습니다. 또한 Starwind와 같은 것을 훨씬 빠른 iSCSI 대상으로 사용할 수 있습니다.

https://www.starwindsoftware.com/starwind-virtual-san#Hyper-V


2
Raid 6은 소프트웨어가 아닌 하드웨어에 있습니다. 약 20 년 이후 더 이상 성능 문제가 아닙니다.
Nils

RAID-6이 문제입니까? 프로토콜에 관계없이 패리티 계산이 수행됩니다.
Daniel

2
RAID6은 패리티 계산 때문이 아니라 읽기-수정-쓰기 패리티 RAID 특성의 결과 인 소위“쓰기 구멍”때문에 느려집니다.
BaronSamedi1958

3
"Raid 6은 소프트웨어가 아닌 하드웨어에 있습니다. 약 20 년 이후로 더 이상 성능 문제가 아닙니다. – Nils Mar 21 at 10:05"-> 이것은 사실이 아닙니다 :( 읽기-> theithollow.com/ 2012 / 03 / 21 / 이해 공습
NISMO1968

1

iSCSI는 블록 레벨에서 사용해야하며, 설정 설명은 파일 시스템을 사용하여 파일을 배치 한 다음이 파일을 iSCSI 블록 계층으로 실행하는 것처럼 들립니다.

이것은 이상적이지 않으며 속도를 비교하기위한 설정이 아닙니다. 공간을 분할하고 iSCSI의 블록 계층을 유지하기 위해 raid6 위에 lvm을 사용하거나 iSCSI 장치로 직접 raid6을 사용하십시오.

현재 설정에서 데이터는 네트워크를 통해 전송되어 파일 시스템의 파일에 도달합니다. 파일 시스템에서 이러한 유형의 워크로드에 최적화되지 않았으며 다른 프로세스와 공유됩니다. iSCSI를 사용하여 이러한 설정을 수행 할 수 있지만 최적화되지 않은 대체 솔루션으로 간주해야합니다.


1

제발 인식은 dd매우 간단한 벤치 마크하고 왜곡하는 것은 매우 쉽습니다. 예를 들어, dd0을 쓰고 있습니다. 무언가가 0으로 가득 찬 데이터에 특별한 경우가있는 경우 (예 : 압축 가능) 환상적인 성능을 볼 수 있지만 0이 아닌 "실제 데이터"를 쓰는 것으로 전환하면 갑자기 성능이 사라질 수 있습니다. ..

(모든 벤치마킹에서와 같이) 질문에 대답하기 위해서는 문제를 유발하는 비트를 식별하기 위해 조각을 분리해야합니다. 예를 들어, iSCSI를 통하지 않고 Windows 파일 시스템에 직접 쓰는 것도 매우 빠릅니까? 동일한 하드웨어 구성을 사용하고 Windows 대신 Linux를 실행하면 속도가 느리거나 느려 집니까? fio 와 같은 벤치 마크 도구를 사용하도록 전환하면 어떻게됩니까 ?

슬프게도 이와 같은 질문에 대답 할 수있는 가능성이 너무 많습니다 ...

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