Ali Mei's Guide: Veritabanı IOE'den (IBM mini bilgisayar, Oracle ticari DB, EMC depolama) geldi Herkes veritabanının büyük ölçüde kaynaklara dayanan bir yazılım olduğunu ve neredeyse sunucunun üç ana bileşeni olan CPU, bellek ve disk için gereksinimleri olduğunu bilir. Veritabanı yaygın olarak kullanılan bir veri depolama sistemidir.SQL isteğinde yer alan fiziksel okuma, mantıksal okuma, sıralama ve filtreleme IO ve CPU kaynaklarını tüketir.Farklı iş SQL'leri ve yürütme planları farklı kaynak tüketimine sahiptir.Bu nedenle, farklı hizmetlerin farklı kaynak özellikleri vardır. Talep de farklı. Bu nedenle, genel kullanımı iyileştirmek için farklı kaynak gereksinimlerine sahip veritabanı örneklerinin aynı fiziksel makinede çalışmasına daha iyi izin vermek için soyut spesifikasyonlara ihtiyacımız var. Bugün, kıdemli bir Alibaba teknik uzmanı olan Tian Yu, bize Alibaba veri tabanının nihai esnekliğini anlatıyor.
Ali'nin Double 11 senaryosu, günlük iş ihtiyaçlarının yanı sıra, en yüksek trafiği düşük maliyetle ve verimli bir şekilde nasıl destekleyeceğimizi ve bu düşünceyi gerçeğe ve teknik rekabete nasıl dönüştürebileceğimizi düşünmeye devam etmemizi sağlıyor. Kaynak esnekliğini artırmak için birkaç fikir vardır:
Büyük promosyonun maliyeti = kaynakları tutma X tutma süresi. Daha genel kaynaklar (bulut) ve daha hızlı dağıtım (konteynerleştirme), tutma süresini kısaltmanın anahtarlarıdır. Daha az kaynak nasıl kullanılır (çevrimdışı veya yalnızca genişleyen bilgi işlem kullanılarak) Kaynaklar), depolama ve bilgi işlem ayrımı mimarisinin uygulanmasına güvenir. Aşırı esneklik hedefinin yanı sıra, veritabanı hibrit bulut esnekliği, kapsayıcıya alınmış esneklik ve bilgi işlem ve depolamanın ayrılmış esnekliğinin üç aşamasından geçti.Altyapı, yüksek performanslı ECS hibrit buluttan, kapsayıcıya alınmış hibrit buluttan, depolama ve bilgi işlemden ayrılmış genel bulut ve çevrimdışı hibritten değişti. Adım adım yükseltin.
Temel olarak, mimarinin evrimi, her yıl bir birimi doğrulamaktır ve tüm ağ ikinci yılda kullanıma sunulacaktır. Her yıl bir çukur kazın ve ardından ekiple tırmanmak için çok çalışın. Her evrim, hedefe hızlı bir şekilde ulaşmak için takımlar arası arka arkaya yakın işbirliği gerektirir. Bu aynı zamanda Ali'nin en şaşırtıcı olanıdır. gücü. Altta yatan yazılım ve donanım teknolojisinin geliştirilmesinin yardımıyla, adım adım mimari yükseltmeleri, esnek karıştırma departmanını giderek daha esnek ve daha hızlı hale getirmiştir.
1. Hibrit bulut esnekliği, yüksek performanslı ECS ortaya çıktı
2015'ten önce büyük promosyon esnekliğimize insan eti esnekliği deniyor, bu da büyük promosyonun makineyi hareket ettirmesi gerektiği anlamına geliyor.Örneğin, grup büyük promosyonu desteklemek için bulut modelini kullanıyor ve büyük promosyon bittikten sonra makine taşınıyor ve buluta geri dönüyor. Ancak 2015'in sonundaki bir toplantıda Li Jin, veritabanının ECS'de çalıştırılıp çalıştırılamayacağını sordu. Öyleyse, bulut ürününün olgunlaşmasına gerçekten yardımcı oldu. Zhang Rui ve ben o sırada bunu tartıştık ve toplantıda cevap verdik: Denemeye karar verdik biraz. Bu işbirliği, "Challenge Impossible-Group Technology Cloud Computing Theatre Aralık aylık toplantısı" konferansının temasına çok iyi uyuyor.
Sanal bir makinede çalışan veritabanı için, en büyük tüketimin IO ve ağın sanallaştırılması olduğuna karar veriyoruz, bu nedenle makinenin performansına nasıl yaklaşılacağı, sanallaştırmaya nasıl nüfuz edileceği bir sorun. Ağ DPDK'sının kullanıcı modu teknolojisi nispeten olgunlaşmıştır, ancak hesaplama için donanıma yük aktarılıp aktarılmayacağı konusunda yeterince yüksek verimliliğin nasıl elde edileceği bir sorundur. Dosya sistemi IO'sunun kullanıcı modu bağlantısında Intelin SPDK çözümü var. Intelin piyasaya sürülmesinden sonra, büyük üreticiler hala doğruluyor ve büyük ölçekli bir uygulama yok. Şu anda başladığımız projeye Yüksek Performanslı ECS deniyor. ECS ekibiyle yakın çalışarak, yerel disklere kıyasla yüksek performanslı ECS'nin performans kaybının% 10'dan daha az olduğu en kötü durum senaryosunu nihayet elde ettik.
2016'da grup günlük doğrulamayı geçti ve 2017'de promosyon, bulut kaynaklarını doğrudan ve esnek bir şekilde büyük ölçekte kullanmaya başladı. Yüksek performanslı ECS ürünleri oluşturmanın yanı sıra, bu proje, ağ ve dosya IO'nun saf kullanıcı modu bağlantı teknolojisini hızlandırmak için daha önemlidir.Bu, Ali'nin depolama ve bilgi işlem ayrımı ile ilgili sonraki ürünlerin yüksek performanslı atılımının temelini oluşturan teknolojik bir dönüm noktasıdır. .
2. Kaynak verimliliğini artırmak için kapsayıcıya alınmış esneklik
Alibaba Veritabanı, tek makineli sunucuların kapasitesinin iyileştirilmesiyle 2011 yılında tek makineli çoklu örnek çözümünü kullanmaya başladı. Grupların ve dosya sistemi dizinlerinin ve bağlantı noktalarının devreye alınması ve yalıtılmasıyla, tek makineli çoklu örneği destekler ve tek makineli kaynakları kullanır. Ancak, aşağıdaki sorunlar hala mevcuttur:
Bağımsız dağıtımların artan yoğunluğu ile topluluk Docker'ı da gelişmeye başladı Henüz olgunlaşmamış olmasına rağmen, Docker'ın kendisi Cgroup'un IO çekişmesini veya OOM problemini çözemeyen kaynak izolasyonu için Cgroup'a güveniyor, ancak kaynak izolasyonu ve ad alanı izolasyonu yoluyla izole ediliyor. Birleştirin, kaynak özelliklerinin ve dağıtımının yeni bir tanımını yapmaya çalışın, böylece konteynerleştirmenin daha fazla avantajını görürüz:
2015 yılında veri tabanı konteynerleştirme teknolojisini doğrulamaya başladı ve 2016'da günlük ortamlarda yaygın olarak kullanıldı. Bu nedenle, grubun birleşik planlama projesinin lansmanından sonra, 2016 yılında tüm e-ticaret işlem birimlerini büyük promosyonu desteklemek için kapsayıcı hale getirme, işlem pazarının yaklaşık% 30'unu taşıma ve başarıyla tamamlama hedefini belirledik. 2017'de veritabanı, tüm ağın konteynerleştirilmesinin hedefidir.Şu anda, tüm veritabanının konteynerizasyon oranı% 100'e yakındır.
Dağıtım esnekliğinin verimliliğini artırmanın yanı sıra, konteynırlaştırma, temel kaynaklardaki farklılıkları şeffaflaştırmak için daha önemlidir.Akıllı zamanlama (kullanımı iyileştirmek için otomatik geçiş) başlatılmadan önce, yalnızca makinenin yeniden kullanımı ve konteynırlaştırmanın getirdiği çok sürümlü karıştırma iyileştirilecektir. 10 puanlık kullanım oranı, birleşik kaynak havuzu ve standart dağıtım şablonları da kaynak sağlama verimliliğini hızlandırır. Containerization, çeşitli temel kaynakların soyutlamasını tamamlar ve özellikleri standartlaştırırken, yansıtma dağıtımı dağıtıma kolaylık getirir. Veritabanı PaaS ve birleşik zamanlama katmanının işbirliğine dayalı olarak, veritabanının esnekliği daha hızlı ve daha esnek hale gelir. Veritabanını nerede çalıştırabilirsiniz.
3. Son derece esnek bilgi işlem kaynakları ve depolama ile bilgi işlem ayırma mimarisinin yükseltilmesi
Kapsayıcıya alınmış hibrit bulutu gerçekleştirmek için, her yıl yüksek performanslı ECS kullanımını teşvik etmek mümkün mü ve kapsayıcıya alınmış dağıtım yeterli mi? Aslında hala eksiklikler var:
Bu nedenle, daha hızlı ve daha çok yönlü esnekliğe nasıl ulaşılacağı yeni bir teknik sorundur. 2016'da çizelgelemenin geliştirilmesiyle, herkes makinenin disksiz olup olmayacağını ya da çizelgeleme verimliliğini hızlandırmak için depolamanın ve hesaplamanın ayrılıp ayrılmayacağını düşünüyor.Veritabanının depolanması ve hesaplanması daha da tartışmalı.
Veritabanının Share Nothing dağıtılmış genişletmesi insanların kalplerinde derin bir şekilde kök salmıştır. Depolama ve bilgi işlemin ayrılması IOE durumuna geri dönecek mi? IDC bir veri merkeziyse, uygulama hesaplamaysa, DB depolamadır, DB'nin depolama ve hesaplamayı kendi başına ayırması mantıklı mı? Veriler birincil ve ikincil kopyalarda. Depolama ve bilgi işlem ayrıldıktan sonra, üç kopya olur. Depolama kümesi kapasite havuzu ek kopyaların maliyetini dengeleyebilir mi?
Bu nedenle, büyük promosyon senaryosunda depolama ve bilgi işlem ayrımı mimarisinin girdi ve çıktılarını ölçmeye başladım. Büyük promosyon senaryosuna bakalım. Esneklik büyük olduğunda, işletmenin bilgi işlem kapasitesini birkaç kez hatta 10 kez genişletmesi ve büyük promosyonun en yüksek baskısını taşıması gerekir. Diskler uzun vadeli verileri depoladığından, en yüksek veri hacmi toplamın yüksek bir yüzdesini oluşturmaz, bu nedenle temelde disk kapasitesinin genişletilmesine gerek yoktur.
Yerel disklerin aktif ve beklemede çalıştığı önceki mimaride, hesaplama ve depolamayı ayrı ayrı genişletmek imkansızdı.Promosyon indeksi ne kadar yüksekse, o kadar fazla standart makine eklenir ve maliyet israfı o kadar fazla olur, çünkü diskler standart veritabanı makinelerinin ana maliyetidir. Depolama ve bilgi işlem ayrımı söz konusu olduğunda, düşük günlük baskı altında, depolama ve bilgi işlem ayırma maliyetinin yerel disklerden daha yüksek olduğunu görebiliriz. Ancak daha da ötesi, depolama ve bilgi işlem ayrımı yalnızca hesaplamaları artırmaya ihtiyaç duyar. Depolama kümeleri havuzlamadan kaynaklanır. , Yalnızca kapasite havuza alınmaz, performans da havuzlanır.Herhangi bir yüksek yük örneğinin GÇ'si paylaşım için tüm kümeye dağıtılır. Disk verimi ve IOPS, performans genişletmesi olmadan yeniden kullanılır ve maliyet avantajı çok açıktır.
Disk genişlemez ve yalnızca genişletmenin maliyeti çok daha düşüktür. Geleneksel düşünce, depolama kümesi kapasitesi havuzlamasının avantajıdır, ancak büyük promosyon senaryolarında, bağımsız darboğazı aşmak için daha fazla performans havuzu kullanıyoruz. Bu nedenle, tüm e-ticaret birimleri ve işletmenin geri kalanı için depolama ve bilgi işlem ayrımı önerdik. Şehir içi felaket kurtarmanın hedef mimarisi için yerel diskleri kullanmaya devam edin.
Bu fikri ortaya koyun ve bu çerçevenin uygulanabilirliği nasıl değerlendirilir? Bazı sayılara dayanarak, SSD disklerin okuma ve yazma yanıt süresinin 100-200 mikrosaniye olduğu, 16k ağ iletiminin 10 mikrosaniye olduğu sonucuna varabiliriz. Bu nedenle, depolama ve hesaplamanın ayrılmasına rağmen, iki veya üç ağ etkileşimi ve artı depolama Yazılımın genel tüketimi, 500 mikrosaniye aralığında bir okuma ve yazma gecikmesi elde etme fırsatına sahiptir. Veritabanı örneği stres testinde, eşzamanlılıktaki artışla birlikte, depolama kümesinin çevrimiçi hale gelmek için daha yüksek bir QPS düzeyine sahip olduğunu gördük, bu da performans havuzlamasının tek bir makinenin darboğazını aşmak için getirdiği verim iyileştirmesini doğrular.
Veritabanı ekibi, 2017 yılında depolama ve bilgi işlemin ayrılmasını doğrulamaya başladı ve 25G TCP ağına dayalı olarak depolama ve bilgi işlem dağıtımının ayrılmasını gerçekleştirdi ve o yılki büyük promosyon trafiğinin% 10'unu üstlendi. Dağıtılmış depolamaya dayanarak, 700 mikrosaniye yanıt süresine ulaştık.Burada, çekirdek durumu ve yazılım yığını çok fazla tüketiyor. Bu nedenle, X-DB, hedeflenen yavaş GÇ optimizasyonunu, özellikle de günlük temizleme optimizasyonunu yaptı ve atomu etkinleştirdi Verimi artırmak için çift yazma arabelleği kaldırılır.
Bu süreçte, artık birleşik programlama bileşeni hizmet grubu işi olarak kullanılan depolama kaynağı planlama sistemini hızlandırdık. Mevcut mimarinin performansından memnun değiliz. X-DB'nin yavaş IO optimizasyonu, ağlar arası IO yollarının depolama ve hesaplama ayrımı, depolama kaynak planlaması ve Alibaba RDMA ağ mimarisinin geliştirilmesiyle birlikte diğer teknoloji yağışları ile veritabanı 2017'nin ikinci yarısında başlayacak Uçtan uca tam kullanıcı modu depolama ve bilgi işlem ayırma çözümü geliştirmek için Pangu ekibiyle birlikte çalışın.
Dördüncüsü, tüm kullanıcı modu IO bağlantılarının depolama ve bilgi işlem ayırma mimarisi uygulanır
Veritabanı yazılımı X-DB'nin IO çağrısından başlayarak, kendi kullanıcı modu dosya sistemimizi (DBFS) kullanıyoruz. DBFS, RDMA ağı üzerinden arka uç Pangu dağıtılmış dosya sistemine doğrudan erişmek için Pangu'nun kullanıcı modu istemcisini kullanıyor. Tüm IO bağlantısı tamamlandı. Çekirdek yığınını atlayın. Burada DBFS, çekirdek dosya sistemini atlar ve doğal olarak pagecache'i atlar.Bu nedenle DBFS, veritabanı senaryoları için daha kısa ve verimli bir BufferIO mekanizması uygular.
IO'ya ağ üzerinden uzaktan erişildiği için, RDMA önemli bir rol oynar.Aşağıda, farklı paket boyutları altında RDMA ve TCP ağları arasındaki gecikmenin bir karşılaştırmasıdır.Gecikme avantajına ek olarak, RDMA uzun kuyruk IO'nun kuyruk gecikmesini etkin bir şekilde kontrol edebilir. Birden çok IO içeren bir veritabanı talebi için, kullanıcı isteklerine yanıt süresi daha etkili bir şekilde garanti edilebilir. RDMA teknolojisinin uygulanması, büyük ölçekli depolamanın ayrılması ve DB'nin hesaplanması için bir ön koşuldur.Veri ölçümümüz sayesinde, DBFS + RDMA bağlantısının gecikmesi Ext4 + yerel disk ile aynı seviyeye ulaştı.
Bu yıl, RDMA'yı ilk kez, ince buz üzerinde yürümek gibi büyük ölçekte konuşlandırdık. Birçok stres testi ve tatbikattan sonra, RDMA destekli izleme ve çalıştırma ve bakım sistemi tamamlanmıştır. 1 dakika içinde bir alarmı tetiklemek için sunucu ağ kartını veya anahtarın ağ bağlantı noktası arızasını belirleyebilir, arızayı hızla izole edebilir ve iş trafiğinin hızlı kesilmesini destekleyebiliriz. Destek kümesi veya bağımsız ağ RDMA düşürme anahtarı, TCP vb. Kesinti alıştırmamızda, DBFS'den RDMA bağlantısının yazma gecikmesinin TCP'ye kıyasla iki katına çıktığını gördük. RDMA teknolojisine dayalı tam bağlantı stres testimizde, disk yanıt süresinin yaklaşık 500 mikrosaniyede, 2 GB'a yakın işleme hızına yakın tek bir veritabanı örneğiyle, hatasız, kararlı olmasını sağladık.
RDMA, EC sıkıştırması, anlık görüntüler ve diğer işlevleri aynı anda desteklemek için, Pangu Dağıtılmış Depolama, özellikle RDMA / TCP anahtarlama, hata yalıtımı ve diğer kararlılık çalışmalarını da içeren çok sayıda tasarım optimizasyonu yaptı. Ali'nin depolama kasası olarak, çevrimiçi hizmet ölçeği zaten çok büyük.
Tüm teknik bağlantı netleştikten sonra, büyük ölçekli uygulamalarda karşılaştığımız sorunlardan bahsedelim.İlk olarak, konteyner ağ sanallaştırma Bridge ve RDMA doğal olarak uyumsuzdur.Konteyner, IP'yi tahsis etmek için Bridge ağ modunu kullandığından, bu çekirdektir. RDMA'yı uygulamak için, konteynerleştirme için Ana Bilgisayar ağ modunu kullanmalı ve Ana Bilgisayar + X-DB + DBFS + RDMA + Pangu Depolamasının tam kullanıcı modu bağlantısını almalıyız.
İkinci olarak, genel bulut ortamı için, hibrit bir bulut ortamı açmak için VPC kullanıyoruz, böylece uygulamalar veritabanına VPC aracılığıyla erişiyor ve veritabanı, Pangu ve X-DB dahili X-Paxos'a RDMA erişimi için fiziksel IP kullanıyor. Bu çözüm karmaşık ve etkilidir DBPaaS yönetiminin hızlı yinelemesi ve kapsayıcıya alınmış kaynak planlamasının esnekliği sayesinde, bu yeni teknolojiler değişiklikler sırasında hızla ve istikrarlı bir şekilde ilerletilebilir.
Bu yılın başında 2018 büyük promosyonunun destek formunu belirledik, yani farklı yerlerde birden fazla faaliyetin olduğu merkezi bilgisayar odası, büyük verinin çevrimdışı kaynaklarına bilgi işlemde esnek olacak ve birim bilgisayar odası, genel bulut kaynaklarına bilgi işlemde esnek olacak ve verileri taşımadan doğrudan elastik olarak genişleyecektir. Bir sonraki büyük terfi hedefi. DB bu yıl küresel bir satranç oyununu tamamladı, kaynak ayarlamalarını tamamladı, her e-ticaret sitesinin depolama ve hesaplama ayrımı mimarisinin yükseltilmesini gerçekleştirdi ve büyük ölçekli esneklik promosyonu hedefine ulaşmak için X-DB uzaktan çoklu kopya mimarisini esnek bir şekilde dağıttı.
Altta yatan Pangu dağıtılmış paylaşılan depolamaya bağlı olarak, esnekliğin verileri taşıması gerekmez, yalnızca diski takması gerekir, veritabanı bir uygulama kadar hızlı ve esnek olabilir ve bir küme 10 dakika içinde elastik olarak genişletilebilir. Aynı zamanda, tam bağlantılı stres testi sürecinde, performans darboğazları olan hizmetler için kıvırma yaparken daha büyük spesifikasyonlara sıçrayabiliriz. Hızlı esneklik kabiliyetine dayalı olarak, bu yıl tüm DB sitelerinin büyük ölçüde genişletilmesi, daha önce elde edilmesi imkansız olan üç gün içinde tamamlanacak.Bu, envanter ve muhasebe mimarisinin ayrılmasıyla sağlanan verimliliktir.
Son olarak Ali bünyesinde tam işbirliği yapan Pangu, Network, Scheduling, IDC ve diğer ekiplere teşekkür etmek istiyorum.Ali'nin veritabanı altyapısının sürekli olarak iyileştirilmesine ve verimliliği ve maliyet rekabetçiliğini artırmaya devam etmesini sağlayan desteğinizdir.
Veritabanı depolama ve bilgi işlem ayırma mimarisi yükseltmesi, promosyonun kaynak maliyetinden büyük ölçüde tasarruf sağlar. Şu anda, esneklik yeteneklerimiz rutin hale geliyor.Veri tahminiyle elastik genişleme otomatik olarak tetikleniyor. Amacımız, tek makineli kapasite sorunlarının neden olduğu arızaları tarihe dönüştürmek.
Daha sonra, platformumuz zekaya doğru gelişecek.Veritabanı için yalnızca altyapı yeterince güçlü, yeterince hızlı, esnek, esnek ve etkili bir şekilde oynamak için akıllı.
[Pekin Salonuna ücretsiz katılım]
16 Aralık Alibaba Double 11 Veritabanı Teknolojisi Zirvesi Son 10 yılda veritabanı teknolojisinin yükseltilmesi ve dönüşümü hakkında konuşmaya davetlisiniz. O zaman, Double 11 veritabanının en son tasarımını ve pratik deneyimini paylaşacağız, veritabanı sisteminin zorluklarını ve düşüncelerini ultra büyük ölçekli ve yüksek eşzamanlılık senaryosunda yorumlayacak ve sektör liderleriyle kurumsal düzeyde yüz yüze sohbet edeceğiz. Veritabanı çözümleri ve en iyi uygulamalar. Kuru ürünlerle dolu, mümkün olan en kısa sürede kaydolun.
Tıklayın " https://jinshuju.net/f/bwDXdB ", ücretsiz kaydolabilirsiniz.