Визначення бенчмарків зовнішнього S3 Storage
Ця інструкція направлена на визначення бенчмарків зовнішнього S3 storage за допомогою інструменту warp, для аналізу отриманих результатів та порівняння по швидкодії з Ceph Object Storage, який використовується в Платформі за замовчуванням.
1. Для проведення та визначення бенчмарків зовнішнього S3 storage потрібно виконати наступне:
-
Створити тестовий бакет (з назвою, наприклад s3-bench) у зовнішньому S3 з отриманням access-key та secret-key для доступу.
-
Запустити под з інструментом warp у просторі імен default кластеру OKD:
apiVersion: v1 kind: Pod metadata: name: s3-benchmark namespace: default spec: containers: - name: benchmarker image: minio/warp:latest command: ["sh", "-c", "sleep 3600"] # Keep container alive for 1 hour resources: requests: cpu: "1" memory: "1Gi" limits: cpu: "2" memory: "2Gi" tolerations: - key: node.ocs.openshift.io/storage operator: Equal value: 'true' effect: NoSchedule -
З термінала под s3-benchmark виконати наступний перелік команд warp:
У разі використання на зовнішньому S3 storage самопідписаного SSL сертифікату треба зробити його довірчим.
Для цього треба зробити:
-
Завантажити сертифікат в под s3-benchmark за шляхом /usr/local/share/ca-certificates/ca.crt
-
Встановити інструмент ca-certificates за допомогою команди: apk add --no-cache ca-certificates
-
Виконати команду update-ca-certificates
Або використовувати прапор --insecure додавши його до переліку прапорів команд warp, що наведені нижче.
Запуск тесту в режимі PUT:
./warp put \ --host=<<url зовнішнього S3>> \ --access-key=<<bucket-access-key>> \ --secret-key=<<bucket-secret-key>> \ --bucket=<<назва тестового бакету>> \ --obj.size=4MiB \ --concurrent=16 \ --duration=40s \ --tls \ --benchdata=write-test.csv.zstприклад для host: --host=s3.krrt-ncr.loc
Запуск тесту в режимі GET:
./warp get \ --host=<<url зовнішнього S3>> \ --access-key=<<bucket-access-key>> \ --secret-key=<<bucket-secret-key>> \ --bucket=<<назва тестового бакету>> \ --obj.size=4MiB \ --concurrent=16 \ --duration=40s \ --tls \ --benchdata=write-test.csv.zstЗапуск тесту в режимі MIXED:
./warp mixed \ --host=<<url зовнішнього S3>> \ --access-key=<<bucket-access-key>> \ --secret-key=<<bucket-secret-key>> \ --bucket=<<назва тестового бакету>> \ --obj.size=4MiB \ --concurrent=16 \ --duration=40s \ --tls \ --benchdata=write-test.csv.zstПрапор --obj.size (розмір об’єкта) можна змінювати за потреби в меншу або більшу сторону.
Для кожного тесту, в кінці його виконання, буде наведено вивід з даними бенчмарків зовнішнього S3 storage, котрі треба зберегти для подальшого аналізу та порівнянь з даними бенчмарків Ceph Object Storage.
-
2. Для проведення та визначення бенчмарків Ceph Object Storage потрібно виконати наступне:
-
Створити тестовий бакет (з назвою, наприклад s3-bench) у Ceph Object Storage Платформи у просторі імен default кластеру OKD:
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: s3-bench namespace: default spec: additionalConfig: bucketclass: registry-bucket-class generateBucketName: s3-bench storageClassName: registry-bucket -
Отримати access-key та secret-key для доступу до тестового бакету з secret s3-bench у просторі імен default кластеру OKD.
-
Визначити повну назву тестового бакету з поля bucketName: з ресурсу obc створеного тестового бекету у п 2.1. Наприклад: s3-bench-93eeec16-b21d-457e-a731-6b6ba2c3cd34
-
Використовувати под s3-benchmark, запущений у п 1.2, та з його термінала, виконати наступний перелік команд warp:
Запуск тесту в режимі PUT:
./warp put --host=rook-ceph-rgw-mdtuddm.openshift-storage.svc:80 \ --access-key=<<bucket-access-key>> \ --secret-key=<<bucket-secret-key>> \ --bucket=<<назва тестового бакету>> \ --obj.size=4MiB \ --concurrent=16 \ --duration=40s \ --benchdata=write-test.csv.zstЗапуск тесту в режимі GET:
./warp get --host=rook-ceph-rgw-mdtuddm.openshift-storage.svc:80 \ --access-key=<<bucket-access-key>> \ --secret-key=<<bucket-secret-key>> \ --bucket=<<назва тестового бакету>> \ --obj.size=4MiB \ --concurrent=16 \ --duration=40s \ --benchdata=write-test.csv.zstЗапуск тесту в режимі MIXED:
./warp mixed --host=rook-ceph-rgw-mdtuddm.openshift-storage.svc:80 \ --access-key=<<bucket-access-key>> \ --secret-key=<<bucket-secret-key>> \ --bucket=<<назва тестового бакету>> \ --obj.size=4MiB \ --concurrent=16 \ --duration=40s \ --benchdata=write-test.csv.zstПрапор --obj.size (розмір об’єкта) можна змінювати за потреби в меншу або більшу сторону.
Для кожного тесту, в кінці його виконання, буде наведено вивід з даними бенчмарків Ceph Object Storage, котрі треба зберегти для подальшого аналізу і порівнянь з даними бенчмарків зовнішнього S3 storage.
3. Рекомендації щодо планування та проведення тестів, зазначених у розділах 1 та 2
-
Планувати проведення декілька етапів тестування у різні дні тижня та різний час. Наприклад: у будні у дений (бізнес) час та вечорі (не бізнес час) та суботу/неділю.
-
Після отримання результатів проведених тестів, зробити аналіз для прийняття рішення доцільності використання зовнішнього S3 storage як місце збереження даних в бакетах для реєстрів Платформи.