Ali Kız Kılavuzu: Veri tabanı örneğinin ve depolama ölçeğinin sürekli büyümesiyle karşı karşıya olan, maliyeti büyük ölçüde teşvik eden, zamanlama verimliliğini ve diğer sorunları 2017 yılında Alibaba, daha düşük maliyetle daha fazla esnekliği desteklemek için küçük ölçekte yeni bir teknoloji mimarisi - "depolama ve bilgi işlem ayrımı" uygulamaya başladı desteklemek.
2018'de, tam birimli büyük ölçekli dağıtım için depolama ve bilgi işlem arasında ayrım yaptık. Ancak bundan önce, her işletmenin kendi işletme özelliklerine göre çok fazla optimize edilmesi gerekiyor. Bu özellikle veritabanı alanında geçerlidir ve gereksinimler daha zorlu ve zordur. Bugün, Alibaba'nın Depolama Teknolojisi Bölümünden kıdemli bir teknik uzman olan Lv Jian, Alibaba'nın 2018 Double 11 Promosyonu sırasında depolama ve bilgi işlem arasındaki teknik engelleri nasıl aşacağını, böylece verileri taşımadan esnek ve esnek bir genişleme elde edeceğini ayrıntılı olarak açıklayacak. Teknoloji atılımı.
1. 2017'de ne yaptık?
Daha 2017'de Dr. Wang Jian'ın herkesi "Bilgisayar Olarak IDC" nin başarılıp başarılamayacağı konusunda hararetli bir tartışmaya çağırdığını hatırlıyorum. Bunu yapmak için, depolama ve hesaplama arasındaki ayrımın gerçekleştirilmesi gerekir ve ayrıldıktan sonra, hesaplama ve depolama kaynakları bağımsız olarak ve zamanlama tarafından serbestçe programlanır. Depolama ve bilgi işlem ayrımının farkına varan tüm işletmeler arasında veritabanı en zor olanıdır. Çünkü veritabanı, I / O gecikmesi ve kararlılığı için son derece yüksek gereksinimlere sahiptir. Ancak sektör açısından bakıldığında, depolama ve bilgi işlemin ayrılması, gelecekteki bir teknoloji trendidir, çünkü Google anahtarı ve Aurora zaten uygulanmıştır.
Bu nedenle, 2017 yılında, veritabanı depolama ve bilgi işlem arasındaki ayrımın farkına varacağımız konusunda kesin bir inancımız var. Aslında, 2017 yılında, Zhangbei biriminin depolamasını ve hesaplamasını işlem hacminin% 10'unu taşıyacak şekilde ayırmak için Pangu ve AliDFS'ye (ceph şubesi) dayanarak yaptık. 2017, veri tabanının depolama ve bilgi işlem ayrımını gerçekleştirdiği ilk yıl olup, 2018'de büyük ölçekli depolama ve bilgi işlem ayrımı için sağlam bir temel oluşturuyor.
2. 2018 teknolojik atılım?
2017, veritabanları için depolama ile bilgi işlemin birbirinden ayrılmasında çığır açan bir yılsa, 2018 yılı aşırı performansın peşinde olduğu ve aynı zamanda deneylerden büyük ölçekli dağıtıma geçiş yılıdır.Teknik zorluklar tahmin edilebilir. 2017 bazında, 2018'deki zorluklar daha da büyük olacak ve depolama ile bilgi işlem ayrımının daha yüksek performanslı, evrensel, evrensel ve basit olması gerekiyor.
2018'de, depolama ve bilgi işlem ayrımı altında veritabanı G / Ç'nin en yüksek performansını ve verimini elde etmek için, kendi geliştirdiğimiz kullanıcı modu küme dosya sistemi DADI DBFS. Teknolojiyi DADI DBFS kullanıcı durumu küme dosyasına yatırarak, grubun veritabanı işlemine tam birim büyük ölçekli depolama ve hesaplama ayırma yetkisini veriyoruz. Peki, DBFS bir depolama orta aşama ürünü olmak için hangi teknik yenilikleri yaptı?
2.1 Kullanıcı modu teknolojisi
2.1.1 "SIFIR" kopya
G / Ç yolunun "Sıfır" kopyasını elde etmek için çekirdeği atlamak için doğrudan kullanıcı modunu kullanıyoruz. Çekirdek çekirdeğin dışında kopyalamadan kaçınmak, iş hacmi ve performans büyük ölçüde iyileştirildi.
Geçmişte çekirdek modu kullanıldığında, biri işletmenin kullanıcı modu sürecinden çekirdeğe, diğeri çekirdekten kullanıcı moduna ağ yönlendirme süreci olmak üzere iki veri kopyası olurdu. Bu iki kopya, genel üretimi ve gecikmeyi etkileyecektir.
Salt kullanıcı moduna geçtikten sonra, G / Ç istek istekleri göndermek için yoklama modelini kullanırız. Ek olarak, yoklama modunda CPU tüketimi için uyarlanabilir uyku teknolojisi kullanıyoruz, böylece temel kaynaklar boşta kaldığında israf edilmeyecek.
2.1.2 RDMA
Buna ek olarak DBFS, RDMA teknolojisini Pangu depolamayla doğrudan veri alışverişi yapmak için birleştirerek yerel SSD'lere yakın bir gecikme süresi ve daha yüksek iş hacmi sağlayarak, bu yılın ağ genelinde son derece düşük gecikme süreli G / Ç'yi mümkün kılarak büyük ölçekli depolama ve bilgi işlemi ayırır. Sağlam bir temel oluşturun. Grubun bu yıl promosyona katıldığı RDMA kümesinin, ölçek olarak sektördeki en büyük küme olduğu söylenebilir.
2.2 Sayfa önbelleği
Tampon G / Ç yeteneğini elde etmek için sayfa önbelleğini ayrı ayrı uyguladık. Sayfa cahce, ulaşmak için dokunma sayısına dayalı LRU algoritması kullanır. Dokunma sayısını tanıtmanın anlamı, veritabanının I / O özellikleriyle daha iyi entegre etmektir. Veritabanında genellikle büyük tablo taramaları ve diğer davranışlar olduğundan, bu düşük frekanslı veri sayfasının LRU'nun verimliliğini ortadan kaldırmasını istemiyoruz. Dokunma sayısına göre sayfayı sıcak uçta ve soğuk uçta hareket ettireceğiz.
Sayfa önbelleğinin sayfa boyutu yapılandırılabilir ve veritabanının sayfa boyutuyla birleştirildiğinde, daha iyi bir önbellek verimliliği oynatır. Genel olarak, DBFS'nin sayfa önbelleği aşağıdaki yeteneklere sahiptir:
2.3 Eşzamansız G / Ç
Veritabanının G / Ç verimini iyileştirmek için çoğu veritabanı eşzamansız G / Ç kullanır. Üst veritabanının I / O özellikleriyle uyumlu olmak için, asenkron I / O uyguladık. Eşzamansız G / Ç özellikleri:
2.4 Atomik yazma
Veritabanı sayfası yazılırken hiçbir kısmi yazma olmamasını sağlamak için DBFS atomik yazma işlevini uygular. DBFS tabanlı Innodb, depolama ve hesap ayrımı altında veritabanı bant genişliğinden% 100 tasarruf sağlayan çift yazma tamponunu güvenle kapatabilir.
Ek olarak, PostgreSQL arabellek G / Ç kullanıyorsa, PG'nin kirli sayfa temizleme sırasında zaman zaman karşılaştığı sayfa hatalarını da önler.
2.5 Çevrimiçi Yeniden Boyutlandırma
Genişlemenin neden olduğu veri geçişini önlemek için DBFS, birimin çevrimiçi olarak yeniden boyutlandırılmasını uygulamak için temeldeki Pangu ile birleşir. DBFS, temeldeki depolama alanını yönetmek için kullanılan kendi bit eşlem ayırıcısına sahiptir. Bitmap ayırıcısını optimize ettik ve dosya sistemi düzeyinde kilitsiz yeniden boyutlandırma elde ettik, böylece üst düzey işletme, herhangi bir zamanda, geleneksel ext4 dosya sisteminden tamamen daha iyi olan, tahribatsız ve verimli iş genişletmesi gerçekleştirebilir.
Çevrimiçi Yeniden Boyutlandırma desteği, depolama alanının boşa harcanmasını önler, çünkü depolama alanının% 20'si gibi ayırmaya gerek yoktur, böylece ilerledikçe genişletebilir ve yazabilirsiniz.
Aşağıdakiler, genişletme sırasında bitmap değiştirme işlemidir:
2.6 TCP ve RDMA birbirini kesti
RDMA'nın grup veritabanında geniş çaplı tanıtımı ve kullanımı da çok büyük bir risk noktasıdır.DBFS ve Pangu birlikte RDMA ve TCP karşılıklı anahtarlama işlevini gerçekleştirmiş ve tüm bağlantı süreci boyunca değişim çalışmaları gerçekleştirerek RDMA riskini azaltmıştır. Kontrol kapsamında, stabilite garantisi daha eksiksizdir.
Ek olarak, DBFS, Pangu ve ağ ekibi, RDMA için çok sayıda kapasite ve su seviyesi basınç testi ve arıza tatbikatı gerçekleştirerek sektörün en büyük RDMA lansmanı için yeterli hazırlıkları yaptı.
2.72018'de büyük promosyon dağıtımı
Teknik atılımları gerçekleştirdikten ve temel sorunları çözdükten sonra, DBFS nihayet zorlu görevi tamamladı ve promosyonun tam bağlantısı testini ve ikili "Onbirinci" testini geçerek, depolama ve bilgi işlem ayrımının fizibilitesini ve genel teknolojik trendi bir kez daha doğruladı.
Üçüncüsü, depolama merkezi aracı DBFS
Bir dosya sistemi olarak uygulanması gereken yukarıdaki işlevlere ek olarak, DBFS birçok özelliği de uygulayarak DBFS'nin ticari kullanımını daha çok yönlü, kullanımı daha kolay, daha kararlı ve daha güvenli hale getirir.
3.1 Teknoloji çökeltme ve güçlendirme
Tüm teknolojik yenilikleri ve işlevleri, ürünler biçiminde DBFS'de biriktiriyoruz, böylece DBFS, daha fazla işletmenin, kullanıcı modu biçiminde farklı temeldeki depolama ortamlarına erişmesini ve ayrı depolama ve bilgi işlem için daha fazla veri tabanını güçlendirmesini sağlayabilir.
3.1.1 POSIX uyumlu
Şu anda, veritabanı işini desteklemek için, üst düzey veritabanı işinin kenetlenmesini kolaylaştırmak için en yaygın kullanılan POSIX dosya arabirimleriyle uyumluyuz. Ek olarak, veritabanı hizmetleri için zengin G / Ç yetenekleri sağlayan sayfa önbelleği, eşzamansız G / Ç ve atomik yazma da uygular. Ayrıca, dosya akışlarının işleyişini ve işlenmesini desteklemek için glibc arayüzünü de uyguladık. Bu iki arayüzün desteği, veritabanı erişiminin karmaşıklığını büyük ölçüde basitleştirir, DBFS kullanım kolaylığını artırır ve DBFS'nin daha fazla veritabanı hizmetini desteklemesini sağlar.
Posix bölümü, aşina iseniz listelenmemiştir. Aşağıdakiler, referans için glibc arayüzünün yalnızca bir parçasıdır:
// glibc arayüzü
FILE * fopen (constchar * yolu, constchar * modu);
FILE * fdopen (int fildes, constchar * modu);
size_t fread (void * ptr, size_t boyut, size_t nmemb, FILE * akım);
size_t fwrite (constvoid * ptr, size_t boyut, size_t nmemb, FILE * akım);
intfflush (FILE * akış);
intfclose (FILE * akım);
intfileno (FILE * akışı);
intfeof (FILE * akışı);
intferror (FILE * akım);
voidclearerr (FILE * akışı);
intfseeko (FILE * akım, off_t uzaklık, int nereden);
intfseek (FILE * akım, uzun uzaklık, int nereden);
off_t ftello (FILE * akım);
longftell (FILE * akışı);
voidrewind (FILE * akım);
3.1.2 Sigorta uygulaması
Ek olarak, Linux ekosistemi ile uyumlu olmak için, VFS etkileşimini açmak için sigorta uyguladık. Fuse'un piyasaya sürülmesi, kullanıcıların nihai performansı dikkate almadan herhangi bir kod değişikliği yapmadan DBFS'ye erişmesine olanak tanıyarak, ürünün kullanım kolaylığını büyük ölçüde artırıyor. Ek olarak, geleneksel işletme ve bakım işlemlerini büyük ölçüde kolaylaştırır.
3.1.3 Hizmet odaklı yetenekler
DBFS, paylaşılan bellek IPC iletişimine dayalı kendi geliştirdiği shmQ bileşenlerine sahiptir, bu nedenle PostgreSQL tabanlı süreç mimarisi ve MySQL'in iş parçacığı tabanlı mimarisi için desteği çekerek DBFS'yi daha genel ve güvenli hale getirir ve gelecekteki çevrimiçi yükseltmeler için sağlam bir temel sağlar.
shmQ, kilitsiz bir uygulamaya dayalıdır ve mükemmel performansa ve verimliliğe sahiptir.Geçerli testten, 16K gibi büyük veritabanı sayfaları altında birkaç US içinde erişim gecikmesini kontrol edebilir. Servis ve çok süreçli mimari desteği ile mevcut performans ve istikrar beklentilerle uyumludur.
3.1.4 Küme Dosya Sistemi
Küme işlevi, DBFS'nin bir başka belirgin özelliğidir: Güçlendirilmiş veritabanı, bilgi işlem kaynaklarının doğrusal genişlemesini sağlamak ve işletme için depolama maliyetlerinden tasarruf etmek için paylaşılan disk modeline dayanır. Ek olarak, paylaşılan disk modu, veritabanı için hızlı esneklik sağlar ve etkin ve bekleme modu arasında hızlı geçiş için SLA'yı büyük ölçüde geliştirir. Küme dosya sistemi, birden çok okuma yazma ve birden çok nokta yazma yeteneği sağlar, paylaşılan disk için sağlam bir temel oluşturur ve veritabanının hiçbir şey paylaşmayan mimarisi. Geleneksel OCFS ile karşılaştırıldığında, bunu daha iyi performans ve daha otonom kontrol ile kullanıcı modunda gerçekleştiriyoruz. OCFS, büyük ölçüde Linux'un VFS'sine dayanır, örneğin, bağımsız bir sayfa önbelleği yoktur.
DBFS bir-yazma-çoklu-okuma modunu desteklediğinde, birden çok rol seçeneği (M / S) sağlar. Paylaşılan verileri kullanmak için bir M düğümü ve birden çok S düğümü olabilir ve hem M hem de S düğümleri Pangu verilerine erişebilir. Üst veritabanı M / S düğümünü kısıtlar, M düğümünün veri erişimi okunabilir ve yazılabilir ve S düğümünün veri erişimi salt okunurdur. Ana kütüphane başarısız olursa, değişecektir. Master-slave anahtarlama adımları:
DBFS, çok noktalı yazma sırasında tüm düğümlerde genel metal kilit kontrolü ve blok grubu tahsis optimizasyonu gerçekleştirir. Buna ek olarak, disk tabanlı çekirdek algoritması da işin içine girecek.İçerik daha karmaşık, bu yüzden şimdilik ayrıntılı bir açıklama yapmayacağım.
3.2 Yazılım ve donanım kombinasyonu
Yeni depolama ortamının ortaya çıkmasıyla, veritabanının kaçınılmaz olarak daha iyi performans veya daha düşük maliyet optimizasyonu uygulamak ve temeldeki depolama ortamının otonom kontrolünü sağlamak için onu kullanması gerekecektir.
Intel'in depolama ortamı planı açısından performanstan kapasiteye kadar üç ürün, AEP, Optane ve SSD oluşturulacak ve QLC, büyük kapasite yönünde ortaya çıkacak. Dolayısıyla, genel performans ve maliyet açısından Optane'nin nispeten iyi bir önbellek ürünü olduğunu düşünüyoruz. DBFS baş kalıcı dosya önbelleğinin uygulaması olarak seçiyoruz.
3.2.1 Kalıcı dosya önbelleği
DBFS, Optane'ye dayalı yerel kalıcı önbellek işlevini uygular, bu da veritabanının okuma ve yazma performansını depolama ve hesap ayrımı altında bir adım daha yakınlaştırır. Üretim kullanılabilirliği elde etmek için Dosya önbelleği aşağıdakiler gibi birçok çalışma yaptı:
Bu işlevlerin desteği, çevrimiçi istikrar için sağlam bir temel oluşturur. Bunların arasında, Optane'nin I / O'su SPDK'nın saf kullanıcı modu teknolojisi olduğundan, DBFS, Fusion Engine'in vhost'uyla birlikte uygulanır. Dosya Önbelleğinin sayfa boyutu, en iyi sonuçları elde etmek için üst veritabanının blok boyutuna göre en uygun şekilde yapılandırılabilir.
Aşağıda dosya önbelleğinin mimari diyagramı verilmiştir:
Aşağıda testten elde edilen okuma ve yazma performans kazancı verileri verilmiştir:
"Önbelleğe" sahip olanlar dosya önbelleğine dayalıdır. Genel performans arttıkça, okuma gecikmesi azalmaya başlar. Ek olarak, dosya önbelleği için birçok performans göstergesini izledik.
3.2.2 Açık Kanal SSD
X-Engine, nesne SSD'sine dayalı otonom ve kontrol edilebilir bir depolama sistemi oluşturmak için DBFS ve Fusion Engine ekipleriyle işbirliği yaptı. SSD aşınmasının azaltılması, SSD veriminin iyileştirilmesi ve okuma ile yazma arasındaki karşılıklı etkileşimin azaltılması gibi alanlarda derinlemesine araştırma ve uygulama yapılmış ve çok iyi sonuçlar elde edilmiştir. Şu anda, X-Engine'in hiyerarşik depolama stratejisi, okuma ve yazma yolunu açmak için birleştirildi. Daha derinlemesine akıllı depolama araştırma ve geliştirmenin bir sonraki adımını dört gözle bekliyoruz.
Dördüncü olarak, özet ve görünüm
DBFS, 2018'de depolama ve bilgi işlem ayrımı şeklinde "11.11" promosyonunu desteklemek için X-DB'yi zaten büyük ölçekte desteklemiştir; aynı zamanda, ADS'yi bir yazma ve çoklu okuma yetenekleri ve Tair elde etme konusunda da güçlendirmiştir.
DBFS, işletmeyi desteklerken, PG süreci ve MySQL iş parçacığı mimarisinin desteğinden yararlandı, VFS arayüzünü açtı ve Linux ekosistemiyle uyumluluk elde ederek gerçek bir depolama orta seviye ürün kümesi kullanıcı durumu dosyaları haline geldi. sistemi. Gelecekte, daha fazla yazılım ve donanım kombinasyonu, katmanlı depolama, NVeoF ve diğer teknolojilerin kombinasyonu, daha fazla veritabanının daha fazla değer elde etmesini sağlayacaktır.
Son olarak, bir reklam yapın ~ Herkes Depolama Bölümünün DBFS ekibine katılmaya hoş geldiniz! Depolama Teknolojisi Bölümü, Alibaba ekosistemindeki büyük iş grupları için yüksek ölçeklenebilirlik, yüksek performanslı ve kullanımı kolay genel depolama hizmetleri sağlayan Alibaba'nın altyapı iş grubunun önemli bileşenlerinden biridir. Birinci sınıf depolama ürünleri ve teknolojileri, çok sayıda kullanıcı ve büyük teknik zorluklar vardır. Depolama, yazılım ve donanım entegrasyonu, dosya sistemleri, dağıtılmış sistemler veya veritabanları konusunda tecrübesi olan öğrenciler bizimle iletişime geçebilirler. Özgeçmişinizi nasıl gönderebilirsiniz: jianshu.ljs@alibaba-inc.com.