단일 사이트 SmartStore 성능
이 섹션에서는 NetApp StorageGRID 컨트롤러의 Splunk SmartStore 성능을 설명합니다. Splunk SmartStore는 웜 데이터를 원격 스토리지로 이동합니다. 이 경우 성능 검증을 위한 StorageGRID 오브젝트 스토리지가 사용됩니다.
NetApp은 핫/캐시 스토리지에 EF600을 사용하고 원격 스토리지에 StorageGRID 6060을 사용했습니다. 성능 검증을 위해 다음 아키텍처를 사용했습니다. 당사는 2개의 검색 헤드, 4개의 무거운 전달자를 사용하여 데이터를 인덱서에 전달했으며, 7개의 Splunk Event Generator(Eventgens)를 사용하여 실시간 데이터를 생성하고 18개의 인덱서(indexers)를 사용하여 데이터를 저장했습니다.
구성
이 표에는 SmartStorage 성능 검증에 사용된 하드웨어가 나열되어 있습니다.
Splunk 구성 요소 | 작업 | 수량 | 코어 | 메모리 | OS |
---|---|---|---|---|---|
중량지 전달자 |
데이터를 수집하여 인덱서에 데이터를 전달하는 역할을 합니다 |
4 |
16개 코어 |
32GB RAM |
SLED 15 SP2 |
인덱서 |
사용자 데이터를 관리합니다 |
18 |
16개 코어 |
32GB RAM |
SLED 15 SP2 |
검색 헤드 |
사용자 프런트 엔드에서 인덱서의 데이터를 검색합니다 |
2 |
16개 코어 |
32GB RAM |
SLED 15 SP2 |
검색 헤드 배포자 |
검색 헤드 클러스터에 대한 업데이트를 처리합니다 |
1 |
16개 코어 |
32GB RAM |
SLED 15 SP2 |
클러스터 마스터 |
Splunk 설치 및 인덱싱을 관리합니다 |
1 |
16개 코어 |
32GB RAM |
SLED 15 SP2 |
모니터링 콘솔 및 라이센스 마스터 |
전체 Splunk 구축을 중앙 집중식으로 모니터링하고 Splunk 라이센스를 관리합니다 |
1 |
16개 코어 |
32GB RAM |
SLED 15 SP2 |
SmartStore 원격 저장소 성능 검증
이 성능 검증에서 10일 동안 모든 인덱서의 로컬 스토리지에 SmartStore 캐시를 구성했습니다. Splunk 클러스터 관리자에서 'axDataSize=auto'(750MB 버킷 크기)를 활성화하고 모든 인덱서에 변경 사항을 푸시했습니다. 업로드 성능을 측정하기 위해 매일 10TB를 10일 동안 수집하여 모든 핫 버킷을 동시에 웜(warm)으로 롤오버한 후 SmartStore 모니터링 콘솔 대시보드에서 인스턴스당 최대 처리량과 평균 처리량을 캡처했습니다.
이 이미지는 하루 만에 수집된 데이터를 보여 줍니다.
클러스터 마스터에서 다음 명령을 실행했습니다. 인덱스 이름은 eventgen-test입니다. 그런 다음 SmartStore 모니터링 콘솔 대시보드를 통해 인스턴스당 최대 및 평균 업로드 처리량과 배포 전체를 캡처했습니다.
for i in rtp-idx0001 rtp-idx0002 rtp-idx0003 rtp-idx0004 rtp-idx0005 rtp-idx0006 rtp-idx0007 rtp-idx0008 rtp-idx0009 rtp-idx0010 rtp-idx0011 rtp-idx0012 rtp-idx0013011 rtdx0014 rtp-idx0015 rtp-idx0016 rtp-idx0017 rtp-idx0018 ; do ssh $i "hostname; date; /opt/splunk/bin/splunk _internal call /data/indexes/eventgen-test/roll-hot-buckets -auth admin:12345678; sleep 1 "; done
|
클러스터 마스터는 모든 인덱서에 암호 없는 인증을 가집니다(RTP-idx0001… RTP-idx0018). |
다운로드 성능을 측정하기 위해 다음 명령을 사용하여 evict CLI를 두 번 실행하여 캐시에서 모든 데이터를 퇴거했습니다.
|
클러스터 마스터에서 다음 명령을 실행하여 StorageGRID의 원격 스토어에서 10일 이상의 데이터를 검색헤드에서 검색했습니다. 그런 다음 SmartStore 모니터링 콘솔 대시보드를 통해 인스턴스당 최대 및 평균 업로드 처리량 및 전체 배포를 캡처했습니다. |
for i in rtp-idx0001 rtp-idx0002 rtp-idx0003 rtp-idx0004 rtp-idx0005 rtp-idx0006 rtp-idx0007 rtp-idx0008 rtp-idx0009 rtp-idx0010 rtp-idx0011 rtp-idx0012 rtp-idx0013 rtp-idx0014 rtp-idx0015 rtp-idx0016 rtp-idx0017 rtp-idx0018 ; do ssh $i " hostname; date; /opt/splunk/bin/splunk _internal call /services/admin/cacheman/_evict -post:mb 1000000000 -post:path /mnt/EF600 -method POST -auth admin:12345678; “; done
인덱서 구성이 SmartStore 클러스터 마스터에서 푸시되었습니다. 클러스터 마스터는 인덱서에 대해 다음과 같은 구성을 가지고 있습니다.
Rtp-cm01:~ # cat /opt/splunk/etc/master-apps/_cluster/local/indexes.conf [default] maxDataSize = auto #defaultDatabase = eventgen-basic defaultDatabase = eventgen-test hotlist_recency_secs = 864000 repFactor = auto [volume:remote_store] storageType = remote path = s3://smartstore2 remote.s3.access_key = U64TUHONBNC98GQGL60R remote.s3.secret_key = UBoXNE0jmECie05Z7iCYVzbSB6WJFckiYLcdm2yg remote.s3.endpoint = 3.sddc.netapp.com:10443 remote.s3.signature_version = v2 remote.s3.clientCert = [eventgen-basic] homePath = $SPLUNK_DB/eventgen-basic/db coldPath = $SPLUNK_DB/eventgen-basic/colddb thawedPath = $SPLUNK_DB/eventgen-basic/thawed [eventgen-migration] homePath = $SPLUNK_DB/eventgen-scale/db coldPath = $SPLUNK_DB/eventgen-scale/colddb thawedPath = $SPLUNK_DB/eventgen-scale/thaweddb [main] homePath = $SPLUNK_DB/$_index_name/db coldPath = $SPLUNK_DB/$_index_name/colddb thawedPath = $SPLUNK_DB/$_index_name/thaweddb [history] homePath = $SPLUNK_DB/$_index_name/db coldPath = $SPLUNK_DB/$_index_name/colddb thawedPath = $SPLUNK_DB/$_index_name/thaweddb [summary] homePath = $SPLUNK_DB/$_index_name/db coldPath = $SPLUNK_DB/$_index_name/colddb thawedPath = $SPLUNK_DB/$_index_name/thaweddb [remote-test] homePath = $SPLUNK_DB/$_index_name/db coldPath = $SPLUNK_DB/$_index_name/colddb #for storagegrid config remotePath = volume:remote_store/$_index_name thawedPath = $SPLUNK_DB/$_index_name/thaweddb [eventgen-test] homePath = $SPLUNK_DB/$_index_name/db maxDataSize=auto maxHotBuckets=1 maxWarmDBCount=2 coldPath = $SPLUNK_DB/$_index_name/colddb #for storagegrid config remotePath = volume:remote_store/$_index_name thawedPath = $SPLUNK_DB/$_index_name/thaweddb [eventgen-evict-test] homePath = $SPLUNK_DB/$_index_name/db coldPath = $SPLUNK_DB/$_index_name/colddb #for storagegrid config remotePath = volume:remote_store/$_index_name thawedPath = $SPLUNK_DB/$_index_name/thaweddb maxDataSize = auto_high_volume maxWarmDBCount = 5000 rtp-cm01:~ #
성능 매트릭스를 수집하기 위해 검색 헤드에서 다음 검색 쿼리를 실행했습니다.
클러스터 마스터에서 성능 정보를 수집했습니다. 최고 성능은 61.34GBps였습니다.
평균 성능은 약 29GBps였습니다.
StorageGRID 성능
SmartStore 성능은 대량의 데이터에서 특정 패턴 및 문자열을 검색하는 것을 기반으로 합니다. 이 검증에서 이벤트는 를 사용하여 생성됩니다 "이벤트" 검색을 통해 특정 Splunk 인덱스(eventgen-test)에서 요청이 대부분의 쿼리에 대한 StorageGRID로 전송됩니다. 다음 이미지는 쿼리 데이터의 적중 횟수와 실패 횟수를 보여 줍니다. 적중 데이터는 로컬 디스크에서 가져온 데이터이고 누락된 데이터는 StorageGRID 컨트롤러에서 가져온 것입니다.
|
녹색은 적중 데이터를 표시하고 주황색은 누락된 데이터를 표시합니다. |
StorageGRID에서 검색을 위해 쿼리를 실행하면 StorageGRID에서 S3 검색 속도에 대한 시간이 다음 이미지에 표시됩니다.
StorageGRID 하드웨어 사용
StorageGRID 인스턴스에는 로드 밸런서 1개와 StorageGRID 컨트롤러 3개가 있습니다. 3개 컨트롤러 모두의 CPU 활용률은 75%에서 100%입니다.
NetApp 스토리지 컨트롤러가 포함된 SmartStore - 고객이 누리는 이점
-
* 컴퓨팅과 스토리지를 분리 * Splunk SmartStore는 컴퓨팅과 스토리지를 분리하여 독립적으로 확장할 수 있도록 지원합니다.
-
* 필요 시 데이터. * SmartStore는 필요에 따라 컴퓨팅에 가까운 데이터를 제공하며 컴퓨팅 및 스토리지의 탄력성과 비용 효율성을 통해 규모에 따라 데이터를 더 오래 보존할 수 있도록 지원합니다.
-
* AWS S3 API 호환 * SmartStore는 AWS S3 API를 사용하여 복원 스토리지와 통신합니다. 이 저장소는 AWS S3 및 StorageGRID와 같은 S3 API 호환 오브젝트 저장소입니다.
-
* 스토리지 요구사항 및 비용 절감 * SmartStore를 사용하면 오래된 데이터의 스토리지 요구사항을 줄일 수 있습니다(웜/콜드). NetApp 스토리지는 데이터 보호 기능을 제공하고 장애 및 고가용성을 지원하기 때문에 단일 데이터 복사본만 필요합니다.
-
* 하드웨어 장애. * SmartStore 배포에서 노드 장애가 발생해도 데이터에 액세스할 수 없으며 하드웨어 장애 또는 데이터 불균형으로 인해 인덱서를 훨씬 더 빠르게 복구할 수 있습니다.
-
애플리케이션 및 데이터 인식 캐시:
-
추가/제거 인덱서와 설정-분해 클러스터를 필요에 따라 사용할 수 있습니다.
-
스토리지 계층이 더 이상 하드웨어에 종속되지 않습니다.