SlideShare a Scribd company logo
Dr. Hüseyin ÇOTUK
Certified OpenStack Administrator (COA)
17.10.2017
OpenStack Days İstanbul
OpenStack’te Ceph Kullanımı ve
Performans Optimizasyonu
+
OPENSTACKDAYSISTANBUL2017 Gündem
●
İlk Bakışta Ceph
●
OpenStack + Ceph
●
Ceph Optimizasyonu
– Dizayn
– OS Optimizasyonu
– Ceph konfigürasyonu
– CRUSH Map dizaynı
●
İpucu ve Öneriler
●
Soru/Cevap
OPENSTACKDAYSISTANBUL2017 İlk Bakışta Ceph
• Açık kaynak kodlu
• Donanım bağımsız, yazılım tabanlı
• Exabyte ölçeğinde tasarım
• Distributed object store
• Unified (Object, Block, FS desteği)
• Metadata sunucusu yok (CRUSH)
• Copy-on-write cloning
• Thin provisioning
• Snapshot, clone
• Mirroring
• Replika veya Erasure Coding (EC)
OPENSTACKDAYSISTANBUL2017 Dağıtık Depolama Karşılaştırma
OPENSTACKDAYSISTANBUL2017 Neden OpenStack + Ceph ?
●
OpenStack Depolama Gereksinimleri
– Ephemeral (Nova)
– Block (Cinder)
– File (Manila)
– Object (Swift)
●
Gelişmiş özellikler
– Live migration
– Direct snapshot & restore
– Mirroring
– HA
– Replication failover
OPENSTACKDAYSISTANBUL2017 Neden OpenStack + Ceph ?
OpenStack Kullanıcı Anketi 2017
OPENSTACKDAYSISTANBUL2017 Ceph Optimizasyonu
●
Dizayn
– Donanım seçimi
– Ağ mimarisi
– Journal seçimi
●
İşletim Sistemi seviyesinde optimizasyon
– Kernel, file descriptor, TCMalloc, updatedb, ...
– NUMA tuning
●
Ceph konfigürasyon parametreleri
●
CRUSH Map dizaynı
– Pool organizasyonu
– Failure domain tasarımı
OPENSTACKDAYSISTANBUL2017 Dizayn - Donanım Seçimi
●
Gereksinimler
– IOPS, throughput (MB/s), latency
●
Bütçe
●
Kapasite
– OSD (disk) sayısı
– Sunucu sayısı
●
Disk tipleri
– SATA, NL-SAS, SAS, SSD
●
Ağ kartları
●
İş yükleri
– Object, block, file system
OPENSTACKDAYSISTANBUL2017 Dizayn – Ağ Mimarisi
●
10 GbE vs 40 GbE
●
Jumbo frame kullanımı
●
Flow control kullanımı
●
Public ve cluster network ayırımı
– Replika kopyaları cluster network üzerinden
●
Redundancy
– Stacking (doğu-batı trafiği ayrıştırılabilir)
– LACP (port trunking)
●
Kernel optimizasyonu
●
iperf3 ile test
OPENSTACKDAYSISTANBUL2017 Dizayn – Journal Seçimi
●
En kritik performans bileşeni
●
SSD arabirim seçimi
– SAS SSD vs NVMe SSD
●
SSD tipi
– Consumer SSD vs Enterprise SSD
●
Fio testi
– fio --filename=/dev/sda --direct=1 --sync=1
--rw=write --bs=4k --numjobs=1 --iodepth=1
--runtime=60 --time_based --group_reporting
--name=journal-test
– Numjobs arttırılarak iops ve throughput ölçümü
– Saturasyon noktası önemli
OPENSTACKDAYSISTANBUL2017 OS Optimizasyonu (1)
●
CPU performans modu
– userspace, conservative, powersave, ondemand,
performance
●
Maksimum process sayısı
– /proc/sys/kernel/pid_max
●
FD ve açık dosya sayısı
– /etc/security/limits.conf
– /proc/sys/fs/file-max
●
SSD diskler için scheduler ve rotation
– echo noop > /sys/block/sda/queue/scheduler
– echo "0" > /sys/block/sda/queue/rotational
OPENSTACKDAYSISTANBUL2017 OS Optimizasyonu (2)
●
Diskler için düzenlemeler
– Number of requests
– Max sector kB
– Read ahead kB
– SSD RQ Affinity
●
CPU
– echo “blacklist intel_idle” >>
/etc/modprobe.d/blacklist.conf
●
GRUB
– GRUB_CMDLINE_LINUX="... elevator=noop
intel_idle.max_cstate=0 processor.max_cstate=0
numa=off"
– update-grub
OPENSTACKDAYSISTANBUL2017 OS Optimizasyonu (3)
●
sysctl.conf
– net.core.rmem_max = 134217728
– net.core.wmem_max = 134217728
– net.core.rmem_default=67108864
– net.core.wmem_default=67108864
– net.core.netdev_budget=1200
– net.core.optmem_max=134217728
– net.ipv4.tcp_wmem = 4096 87380 56623104
– net.ipv4.tcp_rmem = 4096 65536 56623104
– net.ipv4.tcp_max_syn_backlog = 8096
– net.ipv4.tcp_congestion_control=htcp
– net.ipv4.tcp_mtu_probing=1
– net.ipv4.tcp_low_latency=1
– net.ipv4.tcp_adv_win_scale=1
OPENSTACKDAYSISTANBUL2017 OS Optimizasyonu (4)
●
Sysctl.conf (devam)
– net.core.somaxconn = 1024
– net.core.netdev_max_backlog = 250000
– net.ipv4.tcp_max_syn_backlog = 50000
– net.ipv4.tcp_max_tw_buckets = 2000000
– net.ipv4.tcp_tw_recycle = 1
– net.ipv4.tcp_tw_reuse = 1
– net.ipv4.tcp_fin_timeout = 10
– net.ipv4.tcp_slow_start_after_idle = 0
– net.ipv4.udp_rmem_min = 8192
– net.ipv4.udp_wmem_min = 8192
– net.ipv4.conf.all.send_redirects = 0
– net.ipv4.conf.all.accept_redirects = 0
– net.ipv4.conf.all.accept_source_route = 0
OPENSTACKDAYSISTANBUL2017 OS Optimizasyonu (5)
●
/etc/updatedb.conf
– PRUNEPATHS=”… /var/lib/ceph”
●
TCMALLOC (reduce latency)
– export
TCMALLOC_MAX_TOTAL_THREAD_CACHE_
BYTES=128MB
●
Güncel driver kulanımı
– %40’a varan artış
OPENSTACKDAYSISTANBUL2017 NUMA Tuning
●
Pin CPU
– I/O aygıtları → Yerel CPU (IRQ)
– OSD → Yerel CPU
– OSD + Bağlı olan Journal → Aynı CPU
OPENSTACKDAYSISTANBUL2017 Örnek NUMA Eşleşmesi
OPENSTACKDAYSISTANBUL2017 Ceph Konfigürasyonu (1)
●
filestore_xattr_use_omap = true (ext4)
●
filestore_max_sync_interval = 15
●
filestore_min_sync_interval= 10
●
filestore_queue_committing_max_bytes=
1048576000
●
filestore_queue_committing_max_ops=
5000
●
filestore_queue_max_bytes= 10485760
●
filestore_queue_max_ops= 25000
●
filestore_op_threads = 32
OPENSTACKDAYSISTANBUL2017 Ceph Konfigürasyonu (2)
●
osd_mkfs_type = xfs
●
osd_mkfs_options_xfs = -m crc=1,finobt=1 -f
-i size=2048
●
osd_mount_options_xfs =
rw,noatime,nobarrier,inode64,logbsize=256k,
allocsize=4M
●
osd_journal_size = 40960
●
Journal_max_write_bytes = 1073714824
●
Journal_max_write_entries = 10000
●
Journal_queue_max_bytes = 10485760000
●
Journal_queue_max_ops = 50000
OPENSTACKDAYSISTANBUL2017 Ceph Konfigürasyonu (3)
●
[client]
●
rbd_cache = true
●
rbd_cache_size = 268435456
●
rbd_cache_max_dirty = 134217728
●
rbd_cache_max_dirty_age = 5
●
rbd_cache_writethrough_until_flush = true
●
admin_socket = /var/run/ceph/guests/
$cluster-$type.$id.$pid.$cctid.asok
●
log_file = /var/log/qemu/qemu-guest-$pid.log
●
rbd_concurrent_management_ops = 20
OPENSTACKDAYSISTANBUL2017 CRUSH Map Dizaynı
●
Farklı disk tipleri için farklı “root” grupları
●
Farklı root grupları için kurallar ile pool’lara
eşleme
#ceph osd pool create bench_hdd 100 100
#ceph osd pool set bench_hdd crush_ruleset 0
#ceph osd pool create bench_ssd 100 100
#ceph osd pool set bench_ssd crush_ruleset 1
●
Hiyerarşi
– Root/Region/DC/Room/Pod/PDU/Row/Rack/
Chassis/Host/OSD
●
Altyapıya göre failure domain tasarımı
OPENSTACKDAYSISTANBUL2017 İpucu ve Öneriler
●
Her zaman iş yüklerinizin I/O patternine göre
ihtiyaçlarınızı belirleyerek kurulumu özelleştirin
(IOPS/throughput/latency)
●
Yoğun sunucu kullanmayın (max %10/host)
●
İhtiyaçlarınıza uygun disk tipi seçin, disklerinize
uygun journal seçimi yapın
●
Okuma performansını arttırmak için “Cache-
tiering” kullanın
●
BIOS (disable write cache – use pass through)
●
EC için ekstra CPU kullanımını göz ardı
etmeyin
●
Ağ katmanını yedekli yapıda tasarlayın
OPENSTACKDAYSISTANBUL2017 İpucu ve Öneriler (2)
●
Object Storage için RadosGW:OSD oranını
doğru hesaplayın
●
rgw.buckets.index havuzunu SSD üzerinde
tutun
●
CephFS metadata havuzunu SSD üzerinde
tutun
●
Birden fazla CPU kullanıyorsanız mutlaka
NUMA spesifik eşlemeleri yapın
●
Monitör sunucularda mutlaka SSD disk
kullanın (LevelDB – latency sensitive)
●
Güncel CRUSH Map’inizi daima yedekleyin
●
Güncellemeler için bir süre bekleyin
OPENSTACKDAYSISTANBUL2017 Ceph Benchmark: Optimizasyon Öncesi
1 fio + 4 farklı pool rbd bench + 3 node cephfs üzerinden
dd aynı anda çalıştırılıp throughput ölçümü (4.372 GB/sn)
OPENSTACKDAYSISTANBUL2017 Ceph Benchmark: Optimizasyon Sonrası
1 fio + 4 farklı pool rbd bench + 3 node cephfs üzerinden
dd aynı anda çalıştırılıp throughput ölçümü (6.521 GB/sn)
OPENSTACKDAYSISTANBUL2017 Ceph Türkiye Meetup
●
Kaydolmak için:
– https://www.meetup.com/Turkey-Ceph-Meetup/
OPENSTACKDAYSISTANBUL2017 Soru / Cevap
●
Teşekkürler
●
Dr. Hüseyin ÇOTUK
– http://www.huseyincotuk.com
– huseyin@huseyincotuk.com
– https://twitter.com/huseyin_cotuk
●
Sorular

More Related Content

What's hot

Azure Sanal Makineler
Azure Sanal MakinelerAzure Sanal Makineler
Azure Sanal Makineler
Mustafa
 
Veri Depolama ve Diskler
Veri Depolama ve DisklerVeri Depolama ve Diskler
Veri Depolama ve Diskler
Mustafa
 
Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)
Serhad MAKBULOĞLU, MBA
 
Exchange Server 2007 Cluster
Exchange Server 2007 ClusterExchange Server 2007 Cluster
Exchange Server 2007 Cluster
ÇözümPARK
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
Oguz Yarimtepe
 
Nginx sunu 2014
Nginx sunu 2014Nginx sunu 2014
Nginx sunu 2014
Mert Akkaya
 
Linkle mimari
Linkle mimariLinkle mimari
Linkle mimari
Tahsin Yüksel
 
Active Directory ve Powershell ile Hyper-V Taşıma
Active Directory ve Powershell ile Hyper-V TaşımaActive Directory ve Powershell ile Hyper-V Taşıma
Active Directory ve Powershell ile Hyper-V Taşıma
Mustafa
 
Karabük Üniversitesi Programlama Günleri - PostgreSQL Sunumu
Karabük Üniversitesi Programlama Günleri - PostgreSQL SunumuKarabük Üniversitesi Programlama Günleri - PostgreSQL Sunumu
Karabük Üniversitesi Programlama Günleri - PostgreSQL Sunumu
atifceylan
 
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
gulindasdan
 
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
atifceylan
 
Node js giriş (intro)
Node js giriş (intro)Node js giriş (intro)
Node js giriş (intro)
Hasan Sungur Bilgen
 
Openstack Magnum CaaS
Openstack Magnum CaaSOpenstack Magnum CaaS
Openstack Magnum CaaS
Vahric Muhtaryan
 
Apache Spark : Genel Bir Bakış
Apache Spark : Genel Bir BakışApache Spark : Genel Bir Bakış
Apache Spark : Genel Bir Bakış
Burak KÖSE
 
Kak depolama stratejiniz nasıl olmalı?
Kak depolama stratejiniz nasıl olmalı?Kak depolama stratejiniz nasıl olmalı?
Kak depolama stratejiniz nasıl olmalı?
Gokhan Boranalp
 
Hadoop & Cloudera Workshop
Hadoop & Cloudera WorkshopHadoop & Cloudera Workshop
Hadoop & Cloudera Workshop
Serkan Sakınmaz
 
Dspace Migration and Dspace Piwik Integration
Dspace Migration and Dspace Piwik IntegrationDspace Migration and Dspace Piwik Integration
Dspace Migration and Dspace Piwik Integration
Mesut Güngör
 
AnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big DataAnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big DataAnkara JUG
 
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi SunumuAnkara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Serkan Sakınmaz
 

What's hot (20)

Azure Sanal Makineler
Azure Sanal MakinelerAzure Sanal Makineler
Azure Sanal Makineler
 
Veri Depolama ve Diskler
Veri Depolama ve DisklerVeri Depolama ve Diskler
Veri Depolama ve Diskler
 
Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)
 
Exchange Server 2007 Cluster
Exchange Server 2007 ClusterExchange Server 2007 Cluster
Exchange Server 2007 Cluster
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
 
Nginx sunu 2014
Nginx sunu 2014Nginx sunu 2014
Nginx sunu 2014
 
Linkle mimari
Linkle mimariLinkle mimari
Linkle mimari
 
Active Directory ve Powershell ile Hyper-V Taşıma
Active Directory ve Powershell ile Hyper-V TaşımaActive Directory ve Powershell ile Hyper-V Taşıma
Active Directory ve Powershell ile Hyper-V Taşıma
 
Karabük Üniversitesi Programlama Günleri - PostgreSQL Sunumu
Karabük Üniversitesi Programlama Günleri - PostgreSQL SunumuKarabük Üniversitesi Programlama Günleri - PostgreSQL Sunumu
Karabük Üniversitesi Programlama Günleri - PostgreSQL Sunumu
 
Veri tabanı
Veri tabanıVeri tabanı
Veri tabanı
 
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
 
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
 
Node js giriş (intro)
Node js giriş (intro)Node js giriş (intro)
Node js giriş (intro)
 
Openstack Magnum CaaS
Openstack Magnum CaaSOpenstack Magnum CaaS
Openstack Magnum CaaS
 
Apache Spark : Genel Bir Bakış
Apache Spark : Genel Bir BakışApache Spark : Genel Bir Bakış
Apache Spark : Genel Bir Bakış
 
Kak depolama stratejiniz nasıl olmalı?
Kak depolama stratejiniz nasıl olmalı?Kak depolama stratejiniz nasıl olmalı?
Kak depolama stratejiniz nasıl olmalı?
 
Hadoop & Cloudera Workshop
Hadoop & Cloudera WorkshopHadoop & Cloudera Workshop
Hadoop & Cloudera Workshop
 
Dspace Migration and Dspace Piwik Integration
Dspace Migration and Dspace Piwik IntegrationDspace Migration and Dspace Piwik Integration
Dspace Migration and Dspace Piwik Integration
 
AnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big DataAnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big Data
 
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi SunumuAnkara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
 

Similar to OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu

Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaSymfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Hüseyin Mert
 
Istanbul Datascience Academy Talks
Istanbul Datascience Academy TalksIstanbul Datascience Academy Talks
Istanbul Datascience Academy Talks
Metin Uslu
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan Sarıbıyık
Hakan Sarıbıyık
 
64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesiTalha Kabakus
 
Chroot içinde {DNS, NTP, Nginx, PHP-FPM}
Chroot içinde {DNS, NTP, Nginx, PHP-FPM}Chroot içinde {DNS, NTP, Nginx, PHP-FPM}
Chroot içinde {DNS, NTP, Nginx, PHP-FPM}
Ali Erdinc Koroglu
 
Weblogic performance tips&tricks
Weblogic performance tips&tricksWeblogic performance tips&tricks
Weblogic performance tips&tricks
Zekeriya Besiroglu
 
Ibm storage sales
Ibm storage salesIbm storage sales
Ibm storage salesHande Hnd
 
Apache Spark ile Twitter’ı izlemek
Apache Spark ile Twitter’ı izlemekApache Spark ile Twitter’ı izlemek
Apache Spark ile Twitter’ı izlemek
Mehmet Uluer, MSc.
 
Snc moduler sunucu
Snc moduler sunucuSnc moduler sunucu
Snc moduler sunucu
tarkansnc
 
PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?
Gulcin Yildirim Jelinek
 
Puppet ile Linux Sistem Yönetimi Otomasyonu
Puppet ile Linux Sistem Yönetimi OtomasyonuPuppet ile Linux Sistem Yönetimi Otomasyonu
Puppet ile Linux Sistem Yönetimi Otomasyonu
BilgiO A.S / Linux Akademi
 
Dba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriDba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleri
Zekeriya Besiroglu
 
VERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİVERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİ
BGA Cyber Security
 
Oracle 12c Database In-Memory
Oracle 12c Database In-MemoryOracle 12c Database In-Memory
Oracle 12c Database In-Memory
Gokhan Atil
 
PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!
Gulcin Yildirim Jelinek
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data Presentation
Serkan Özal
 
Nosql & MongoDB
Nosql & MongoDBNosql & MongoDB
Nosql & MongoDB
Serdar Buyuktemiz
 
Oracle Golden Gate
Oracle Golden GateOracle Golden Gate
Oracle Golden GateAnar Godjaev
 
Az 103 : Microsoft Azure Administrator - Bolum 3
Az 103 : Microsoft Azure Administrator - Bolum 3Az 103 : Microsoft Azure Administrator - Bolum 3
Az 103 : Microsoft Azure Administrator - Bolum 3
MSHOWTO Bilisim Toplulugu
 

Similar to OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu (20)

Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaSymfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
 
Istanbul Datascience Academy Talks
Istanbul Datascience Academy TalksIstanbul Datascience Academy Talks
Istanbul Datascience Academy Talks
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan Sarıbıyık
 
64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi
 
Chroot içinde {DNS, NTP, Nginx, PHP-FPM}
Chroot içinde {DNS, NTP, Nginx, PHP-FPM}Chroot içinde {DNS, NTP, Nginx, PHP-FPM}
Chroot içinde {DNS, NTP, Nginx, PHP-FPM}
 
Weblogic performance tips&tricks
Weblogic performance tips&tricksWeblogic performance tips&tricks
Weblogic performance tips&tricks
 
Ibm storage sales
Ibm storage salesIbm storage sales
Ibm storage sales
 
Apache Spark ile Twitter’ı izlemek
Apache Spark ile Twitter’ı izlemekApache Spark ile Twitter’ı izlemek
Apache Spark ile Twitter’ı izlemek
 
Snc moduler sunucu
Snc moduler sunucuSnc moduler sunucu
Snc moduler sunucu
 
PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?
 
Puppet ile Linux Sistem Yönetimi Otomasyonu
Puppet ile Linux Sistem Yönetimi OtomasyonuPuppet ile Linux Sistem Yönetimi Otomasyonu
Puppet ile Linux Sistem Yönetimi Otomasyonu
 
Dba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriDba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleri
 
VERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİVERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİ
 
Oracle 12c Database In-Memory
Oracle 12c Database In-MemoryOracle 12c Database In-Memory
Oracle 12c Database In-Memory
 
PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data Presentation
 
Nosql & MongoDB
Nosql & MongoDBNosql & MongoDB
Nosql & MongoDB
 
Oracle Golden Gate
Oracle Golden GateOracle Golden Gate
Oracle Golden Gate
 
Az 103 : Microsoft Azure Administrator - Bolum 3
Az 103 : Microsoft Azure Administrator - Bolum 3Az 103 : Microsoft Azure Administrator - Bolum 3
Az 103 : Microsoft Azure Administrator - Bolum 3
 
Raid technologies
Raid technologiesRaid technologies
Raid technologies
 

OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu

  • 1. Dr. Hüseyin ÇOTUK Certified OpenStack Administrator (COA) 17.10.2017 OpenStack Days İstanbul OpenStack’te Ceph Kullanımı ve Performans Optimizasyonu +
  • 2. OPENSTACKDAYSISTANBUL2017 Gündem ● İlk Bakışta Ceph ● OpenStack + Ceph ● Ceph Optimizasyonu – Dizayn – OS Optimizasyonu – Ceph konfigürasyonu – CRUSH Map dizaynı ● İpucu ve Öneriler ● Soru/Cevap
  • 3. OPENSTACKDAYSISTANBUL2017 İlk Bakışta Ceph • Açık kaynak kodlu • Donanım bağımsız, yazılım tabanlı • Exabyte ölçeğinde tasarım • Distributed object store • Unified (Object, Block, FS desteği) • Metadata sunucusu yok (CRUSH) • Copy-on-write cloning • Thin provisioning • Snapshot, clone • Mirroring • Replika veya Erasure Coding (EC)
  • 5. OPENSTACKDAYSISTANBUL2017 Neden OpenStack + Ceph ? ● OpenStack Depolama Gereksinimleri – Ephemeral (Nova) – Block (Cinder) – File (Manila) – Object (Swift) ● Gelişmiş özellikler – Live migration – Direct snapshot & restore – Mirroring – HA – Replication failover
  • 6. OPENSTACKDAYSISTANBUL2017 Neden OpenStack + Ceph ? OpenStack Kullanıcı Anketi 2017
  • 7. OPENSTACKDAYSISTANBUL2017 Ceph Optimizasyonu ● Dizayn – Donanım seçimi – Ağ mimarisi – Journal seçimi ● İşletim Sistemi seviyesinde optimizasyon – Kernel, file descriptor, TCMalloc, updatedb, ... – NUMA tuning ● Ceph konfigürasyon parametreleri ● CRUSH Map dizaynı – Pool organizasyonu – Failure domain tasarımı
  • 8. OPENSTACKDAYSISTANBUL2017 Dizayn - Donanım Seçimi ● Gereksinimler – IOPS, throughput (MB/s), latency ● Bütçe ● Kapasite – OSD (disk) sayısı – Sunucu sayısı ● Disk tipleri – SATA, NL-SAS, SAS, SSD ● Ağ kartları ● İş yükleri – Object, block, file system
  • 9. OPENSTACKDAYSISTANBUL2017 Dizayn – Ağ Mimarisi ● 10 GbE vs 40 GbE ● Jumbo frame kullanımı ● Flow control kullanımı ● Public ve cluster network ayırımı – Replika kopyaları cluster network üzerinden ● Redundancy – Stacking (doğu-batı trafiği ayrıştırılabilir) – LACP (port trunking) ● Kernel optimizasyonu ● iperf3 ile test
  • 10. OPENSTACKDAYSISTANBUL2017 Dizayn – Journal Seçimi ● En kritik performans bileşeni ● SSD arabirim seçimi – SAS SSD vs NVMe SSD ● SSD tipi – Consumer SSD vs Enterprise SSD ● Fio testi – fio --filename=/dev/sda --direct=1 --sync=1 --rw=write --bs=4k --numjobs=1 --iodepth=1 --runtime=60 --time_based --group_reporting --name=journal-test – Numjobs arttırılarak iops ve throughput ölçümü – Saturasyon noktası önemli
  • 11. OPENSTACKDAYSISTANBUL2017 OS Optimizasyonu (1) ● CPU performans modu – userspace, conservative, powersave, ondemand, performance ● Maksimum process sayısı – /proc/sys/kernel/pid_max ● FD ve açık dosya sayısı – /etc/security/limits.conf – /proc/sys/fs/file-max ● SSD diskler için scheduler ve rotation – echo noop > /sys/block/sda/queue/scheduler – echo "0" > /sys/block/sda/queue/rotational
  • 12. OPENSTACKDAYSISTANBUL2017 OS Optimizasyonu (2) ● Diskler için düzenlemeler – Number of requests – Max sector kB – Read ahead kB – SSD RQ Affinity ● CPU – echo “blacklist intel_idle” >> /etc/modprobe.d/blacklist.conf ● GRUB – GRUB_CMDLINE_LINUX="... elevator=noop intel_idle.max_cstate=0 processor.max_cstate=0 numa=off" – update-grub
  • 13. OPENSTACKDAYSISTANBUL2017 OS Optimizasyonu (3) ● sysctl.conf – net.core.rmem_max = 134217728 – net.core.wmem_max = 134217728 – net.core.rmem_default=67108864 – net.core.wmem_default=67108864 – net.core.netdev_budget=1200 – net.core.optmem_max=134217728 – net.ipv4.tcp_wmem = 4096 87380 56623104 – net.ipv4.tcp_rmem = 4096 65536 56623104 – net.ipv4.tcp_max_syn_backlog = 8096 – net.ipv4.tcp_congestion_control=htcp – net.ipv4.tcp_mtu_probing=1 – net.ipv4.tcp_low_latency=1 – net.ipv4.tcp_adv_win_scale=1
  • 14. OPENSTACKDAYSISTANBUL2017 OS Optimizasyonu (4) ● Sysctl.conf (devam) – net.core.somaxconn = 1024 – net.core.netdev_max_backlog = 250000 – net.ipv4.tcp_max_syn_backlog = 50000 – net.ipv4.tcp_max_tw_buckets = 2000000 – net.ipv4.tcp_tw_recycle = 1 – net.ipv4.tcp_tw_reuse = 1 – net.ipv4.tcp_fin_timeout = 10 – net.ipv4.tcp_slow_start_after_idle = 0 – net.ipv4.udp_rmem_min = 8192 – net.ipv4.udp_wmem_min = 8192 – net.ipv4.conf.all.send_redirects = 0 – net.ipv4.conf.all.accept_redirects = 0 – net.ipv4.conf.all.accept_source_route = 0
  • 15. OPENSTACKDAYSISTANBUL2017 OS Optimizasyonu (5) ● /etc/updatedb.conf – PRUNEPATHS=”… /var/lib/ceph” ● TCMALLOC (reduce latency) – export TCMALLOC_MAX_TOTAL_THREAD_CACHE_ BYTES=128MB ● Güncel driver kulanımı – %40’a varan artış
  • 16. OPENSTACKDAYSISTANBUL2017 NUMA Tuning ● Pin CPU – I/O aygıtları → Yerel CPU (IRQ) – OSD → Yerel CPU – OSD + Bağlı olan Journal → Aynı CPU
  • 18. OPENSTACKDAYSISTANBUL2017 Ceph Konfigürasyonu (1) ● filestore_xattr_use_omap = true (ext4) ● filestore_max_sync_interval = 15 ● filestore_min_sync_interval= 10 ● filestore_queue_committing_max_bytes= 1048576000 ● filestore_queue_committing_max_ops= 5000 ● filestore_queue_max_bytes= 10485760 ● filestore_queue_max_ops= 25000 ● filestore_op_threads = 32
  • 19. OPENSTACKDAYSISTANBUL2017 Ceph Konfigürasyonu (2) ● osd_mkfs_type = xfs ● osd_mkfs_options_xfs = -m crc=1,finobt=1 -f -i size=2048 ● osd_mount_options_xfs = rw,noatime,nobarrier,inode64,logbsize=256k, allocsize=4M ● osd_journal_size = 40960 ● Journal_max_write_bytes = 1073714824 ● Journal_max_write_entries = 10000 ● Journal_queue_max_bytes = 10485760000 ● Journal_queue_max_ops = 50000
  • 20. OPENSTACKDAYSISTANBUL2017 Ceph Konfigürasyonu (3) ● [client] ● rbd_cache = true ● rbd_cache_size = 268435456 ● rbd_cache_max_dirty = 134217728 ● rbd_cache_max_dirty_age = 5 ● rbd_cache_writethrough_until_flush = true ● admin_socket = /var/run/ceph/guests/ $cluster-$type.$id.$pid.$cctid.asok ● log_file = /var/log/qemu/qemu-guest-$pid.log ● rbd_concurrent_management_ops = 20
  • 21. OPENSTACKDAYSISTANBUL2017 CRUSH Map Dizaynı ● Farklı disk tipleri için farklı “root” grupları ● Farklı root grupları için kurallar ile pool’lara eşleme #ceph osd pool create bench_hdd 100 100 #ceph osd pool set bench_hdd crush_ruleset 0 #ceph osd pool create bench_ssd 100 100 #ceph osd pool set bench_ssd crush_ruleset 1 ● Hiyerarşi – Root/Region/DC/Room/Pod/PDU/Row/Rack/ Chassis/Host/OSD ● Altyapıya göre failure domain tasarımı
  • 22. OPENSTACKDAYSISTANBUL2017 İpucu ve Öneriler ● Her zaman iş yüklerinizin I/O patternine göre ihtiyaçlarınızı belirleyerek kurulumu özelleştirin (IOPS/throughput/latency) ● Yoğun sunucu kullanmayın (max %10/host) ● İhtiyaçlarınıza uygun disk tipi seçin, disklerinize uygun journal seçimi yapın ● Okuma performansını arttırmak için “Cache- tiering” kullanın ● BIOS (disable write cache – use pass through) ● EC için ekstra CPU kullanımını göz ardı etmeyin ● Ağ katmanını yedekli yapıda tasarlayın
  • 23. OPENSTACKDAYSISTANBUL2017 İpucu ve Öneriler (2) ● Object Storage için RadosGW:OSD oranını doğru hesaplayın ● rgw.buckets.index havuzunu SSD üzerinde tutun ● CephFS metadata havuzunu SSD üzerinde tutun ● Birden fazla CPU kullanıyorsanız mutlaka NUMA spesifik eşlemeleri yapın ● Monitör sunucularda mutlaka SSD disk kullanın (LevelDB – latency sensitive) ● Güncel CRUSH Map’inizi daima yedekleyin ● Güncellemeler için bir süre bekleyin
  • 24. OPENSTACKDAYSISTANBUL2017 Ceph Benchmark: Optimizasyon Öncesi 1 fio + 4 farklı pool rbd bench + 3 node cephfs üzerinden dd aynı anda çalıştırılıp throughput ölçümü (4.372 GB/sn)
  • 25. OPENSTACKDAYSISTANBUL2017 Ceph Benchmark: Optimizasyon Sonrası 1 fio + 4 farklı pool rbd bench + 3 node cephfs üzerinden dd aynı anda çalıştırılıp throughput ölçümü (6.521 GB/sn)
  • 26. OPENSTACKDAYSISTANBUL2017 Ceph Türkiye Meetup ● Kaydolmak için: – https://www.meetup.com/Turkey-Ceph-Meetup/
  • 27. OPENSTACKDAYSISTANBUL2017 Soru / Cevap ● Teşekkürler ● Dr. Hüseyin ÇOTUK – http://www.huseyincotuk.com – huseyin@huseyincotuk.com – https://twitter.com/huseyin_cotuk ● Sorular