Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

HPC BeeGFS Yüksek Kapasiteli Depolama için Dell EMC Ready Çözümleri (İngilizce)

Summary: HPC için Dell EMC Ready çözümleri yüksek kapasiteli depolama, tam olarak desteklenen, yüksek performanslı bir paralel dosya sistemi depolama çözümüdür. Bu mimaride performans vurgulandı ve burada açıklanan çözüm yüksek kapasiteli bir depolama çözümüdür. BeeGFS için bu iki çözüm, tasarım hedefleri ve kullanım örneklerinin hükümlerinde farklıdır. Yüksek performanslı çözüm, genellikle işin kullanım ömrünün ötesinde tutmayan geçici veri kümeleri için bir çalışma depolama çözümü olarak tasarlanmıştır. Yüksek kapasiteli çözüm, Toplam 336 sürücülü tam olarak doldurulan 4X Dell EMC PowerVault ME4084 dizilerini kullanır ve 12 TB SAS sürücülerle donatılmışsa 4PB 'nin işlenmemiş kapasitesini sağlar. ...

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Symptoms

Bu makale Nirmala Sundararajan, HPC ve AI Yenilik Laboratuarı tarafından yazılmıştır, 2020 Nisan

Cause


İçindekiler:

  1. Giriş
  2. Çözüm referans mimarisi
  3. Donanım ve yazılım yapılandırması
  4. Çözüm yapılandırma detayları
  5. Performans Değerlendirmesi
  6. Sonuç ve gelecekteki çalışma

 

Giriş

HPC için Dell EMC Ready çözümleri yüksek kapasiteli depolama, tam olarak desteklenen, yüksek performanslı bir paralel dosya sistemi depolama çözümüdür. Bu blog çözümü mimarisini, HPC performansı için nasıl ayarlanacağını ve hem ıozone sıralı hem de rastgele kıyaslamaları kullanan g/ç performansı sunar. NVMe aygıtlarında oluşturulan bir BeeGFS yüksek performanslı depolama çözümü, bu blogda kas 2019 sırasında yayımlananbu konuda açıklanmıştır. Bu mimari vurgulanmış performans ve burada açıklanan çözüm yüksek kapasiteli bir depolama çözümü.  BeeGFS için bu iki çözüm, tasarım hedefleri ve kullanım örneklerinin hükümlerinde farklıdır.  Yüksek performanslı çözüm, genellikle işin kullanım ömrünün ötesinde tutmayan geçici veri kümeleri için bir çalışma depolama çözümü olarak tasarlanmıştır. Yüksek kapasiteli çözüm, Toplam 336 sürücülü tam olarak doldurulan 4X Dell EMC PowerVault ME4084 dizilerini kullanır ve 12 TB SAS sürücülerle donatılmışsa 4PB 'nin işlenmemiş kapasitesini sağlar. 


Başa Dön


Resolution

Çözüm referans mimarisi

HPC ıegfs yüksek kapasiteli depolama için Dell EMC Ready çözümü bir yönetim sunucusu, bir çift meta veri sunucusu, bir çift depolama sunucusu ve ilgili depolama dizilerini içerir. Çözüm, kümenin bilgi işlem düğümleri tarafından kolayca erişilebilen tek bir ad alanı kullanan depolama sağlar. Aşağıdaki şekil, bu birincil bileşenlerle çözüm referans mimarisini göstermektedir:

  • Yönetim sunucusu
  • PowerVault ME4024 arka uç depolama olarak meta veri sunucu çifti
  • PowerVault ME4084 arka uç depolama olarak depolama sunucusu çifti

Şekil 1, çözümün referans mimarisini göstermektedir.

SLN320833_en_US__1image001

Şekil 1: HPC BeeGFS depolama

Için Dell EMC Ready çözümü Şekil 1 ' de, BeeGFS izleme cini çalıştıran yönetim sunucusu bir PowerEdge R640.   İki meta veri sunucusu (MDS) etkin-etkin yüksek kullanılabilirlik yapılandırmasında PowerEdge R740 sunucularıdır.  MDS çifti, 2U, PowerVault ME4024 dizisine 12 GB/s SAS bağlantıları ile bağlanır. ME4024 depolama dizisi, meta veri hedeflerini (MDTs) barındırır. Etkin-etkin yüksek kullanılabilirlik yapılandırmasındaki başka bir PowerEdge R740 sunucusu çifti ise depolama sunucuları (sn) olarak kullanılır.  Bu SS çift, 12 GB/s SAS bağlantıları kullanan dört tamamen doldurulmuş PowerVault ME4084 depolama dizilerine bağlanır. ME4084 dizileri, 4 TB, 8 TB, 10 TB veya 12 TB NL SAS 7,2 K RPM sabit disk sürücüleri 'ni (HDD 'Ler) destekler ve BeeGFS dosya sistemi için depolama hedeflerini (STs) barındırır. Bu çözüm veri ağı için Mellanox InfiniBand HDR100 kullanır. İstemciler ve sunucular, HDR Splitter kablolarını kullanarak 80 bağlantı noktasını destekleyen 1U Mellanox hisse AlanR Edge Switch QM8790 'e bağlıdır.


Başa Dön


 

Donanım ve yazılım yapılandırması

 

Aşağıdaki tablolarda, çözüm için doğrulanmış donanım tanımlama ve yazılım sürümleri açıklanmaktadır.

Yönetim sunucusu 1x Dell EMC PowerEdge R640
Meta veri sunucuları (MDS) 2x Dell EMC PowerEdge R740
Depolama sunucuları (sn) 2x Dell EMC PowerEdge R740
İşlemci Yönetim sunucusu: 2 x Intel Xeon Gold 5218 @ 2,3 GHz, 16 çekirdek
mds ve sn: 2x Intel Xeon Gold 6230 @ 2,10 GHz, 20 çekirdek
Bellek Yönetim sunucusu: 12 x 8 GB DDR4 2666MT/s DIMM-96GB
mds ve sn: 12x 32GB'A DDR4 2933MT/s DIMM 'ler-384GB
InfiniBand HCA (yuva 8) MDS ve SS başına 1x Mellanox ConnectX-6 tek bağlantı noktalı HDR100 adaptör
Harici depolama denetleyicileri 2x Dell 12 Gbps SAS HBA 'lar (her bir MDS 'de)
4X Dell 12 Gbps SAS HBA 'lar (her SS 'de)
Veri Depolama Kasası 4X Dell EMC PowerVault ME4084 kasaları,
4X ME4084 'de 8 TB SAS sürücülerle donatılmış toplam 336 sürücülü 2,69 PB ham depolama kapasitesine tamamıyla doldurulmuştur
Meta veri depolama kasası 1x Dell EMC PowerVault ME4024 Kasası, tam olarak 24 sürücülü doldurulmuş
RAID denetleyicileri ME4084 ve ME4024 muhafazalarındaki çift yönlü RAID denetleyicileri
Sabit Disk Sürücüleri 84-8TB 7200 RPM NL SAS3 sürücü, ME4084 muhafaza başına
24-960 GB SAS3 SSD (ME4024 muhafaza başına)
İşletim Sistemi CentOS Linux Release 8.1.1911 (temel)
Kernel sürümü 4.18.0-147.5.1. EL8 _1. x86_64
Mellanox OFED sürümü 4,7-3.2.9.0
Grafana 6.6.2-1
Etkileyen 1.7.10-1
BeeGFS DOSYA SİSTEMİ 7,2 Beta2

Tablo 1: Sınama Ortamı Yapılandırması

Not: Performans karakterizlemesi amacına yönelik olarak, BeeGFS sürüm 7,2 Beta2 kullanılmıştır.


Başa Dön


 

Çözüm yapılandırma detayları

 

Beegfs mimarisi dört ana servisinden oluşur:

  1. Yönetim Servisi
  2. Meta veri servisi
  3. Depolama hizmeti
  4. İstemci hizmeti

Ayrıca isteğe bağlı bir BeeGFS Izleme servisi vardır.

Bir çekirdek modülü olan istemci hizmeti hariç, yönetim, meta veri ve Depolama Hizmetleri Kullanıcı alanı süreçleridir. Her türlü BeeGFS servisleri 'nin (istemci ve sunucu bileşenleri) aynı makinelerde bir arada çalıştırılması mümkündür. Aynı makine üzerinde herhangi bir BeeGFS servisinin birden fazla örneğini çalıştırmak da mümkündür. BeeGFS 'nin Dell EMC yüksek kapasite yapılandırmasında, izleme servisi yönetim sunucusunda çalışır, meta veri sunucularında birden fazla meta veri hizmeti örneği ve depolama sunucularında tek bir depolama hizmeti örneği çalıştırılır. Yönetim hizmeti, meta veri sunucularına yüklenir.  

İzleme Servisi

BeeGFS izleme servisi (beegfs-Mon. servis), beegfs istatistiklerini toplar ve bunları kullanıcıya sunarak zaman serisi veritabanı etkileyenbir veri tabanı sunar.   Veri görselleştirmesi için, beegfs-Mon-grafana , kutudan çıkan önceden tanımlanmış grafana panoları sunar. Şekil 2, kurulumda depolama hizmetlerinin ve meta veri servislerinin (panoda düğüm olarak adlandırılır) sayısını gösteren, BeeGFS kümesine genel bir genel bakış sağlar. Ayrıca mevcut diğer Pano görünümlerini listeler ve depolama hedeflerine genel bir bakış sunar.

SLN320833_en_US__2image002 (1)

Şekil 2 Grafana Dashboard-BeeGFS 'A genel bakış


Başa Dön


 

Meta veri servisi

Meta veri depolama için kullanılan ME4024 depolama dizisi, 24x 960 GB SSD 'Ler ile tamamen doldurulmuştur. Bu sürücüler, Şekil 3 ' te gösterildiği gibi iki sürücünün 12 x doğrusal RAıD1 disk grubunda yapılandırılır. Her bir RAıD1 grubu bir meta veri hedeftir.

SLN320833_en_US__3image003

12 MDTs ile şekil 3 tam olarak doldurulan ME4024 dizisi

BeeGFS içinde, her bir meta veri hizmeti yalnızca tek bir MDT ile ilgilenir. 12 MDTs olduğundan meta veri hizmetinin 12 örneği olması gerekir. İki meta veri sunucusunun her biri meta veri hizmetinin altı örneğini çalıştırır. Meta veri hedefleri bir ext4 dosya sistemi ile biçimlendirilir (ext4 dosya sistemleri küçük dosyalarla ve küçük dosya işlemleriyle iyi bir şekilde gerçekleştirilir). Ayrıca, BeeGFS, ext4 dosya sistemi ile her iki çalışmanın da performansını optimize etmek için, bilgileri genişletilmiş özelliklere ve doğrudan dosya sisteminin içine depolar.

Başa dön


 

Yönetim Servisi

Beegfs-mgmtd hizmeti her iki meta veri sunucusunda da kurulum yapılır. Beegfs mgmtd deposu, aşağıda gösterildiği gibi meta veri hedef 1 ' deki mgmtd dizininde kullanıma hazırlanır:

/OPT/beegfs/sbin/beegfs-Setup-mgmtd-p/beegfs/metaA-numa0-1/mgmtd-S beegfs-MGMT

Meta bir sunucuda yönetim hizmeti başlatıldı.
 

Başa Dön


 

Depolama hizmeti

Bu yüksek kapasiteli BeeGFS çözümünde veri depolama, dört adet PowerVault ME4084 depolama dizisi üzerinde bulunur. Her bir dizide her biri oluşturulan 10 sürücünün (8 + 2) doğrusal RAID-6 disk grupları. Her disk grubu için tüm alanları kullanan tek bir birim oluşturulur. Bu, dizi başına 8 disk grubu/birim ile sonuçlanır. Her bir dizide 84 sürücü bulunur ve 8 x RAID-6 disk grubu oluşturma, dizi birimleri üzerinde Global etkin yedekler olarak yapılandırılabilen 4 sürücü bırakır.

Yukarıda açıklanan düzen sayesinde, Şekil 1 ' de gösterilen temel yapılandırmada 4 x ME4084 arasında toplam 32 x RAID-6 birimi bulunur. Bu RAID-6 birimlerinin her biri, BeeGFS dosya sistemi için bir depolama hedefi (ST) olarak yapılandırılmıştır; bu da dosya sisteminde toplam 32 STs ile birlikte ortaya çıkarır.

Her ME4084 dizisi, üst çekmecede 84 sürücü ve alt çekmecedeki numaralandırılabilir 42-84 0-41 ile sürücülere sahiptir.  Şekil 5 ' te, 1 ila 8 arasındaki her bir 10 sürücü kümesi 8xRAID6 grubunu temsil eder. Her bir RAID6 grubundan bir disk oluşturulur. "S" işaretli sürücüler Global yedekleri temsil etmektedir. Şekil 5, 8 birim ve 4 Global yedekler yapılandırmasından sonra dizinin önden görünümünü göstermektedir.

SLN320833_en_US__4image004

Şekil 4 RAID 6 (8 + 2) bir ME4084 üzerinde disk grubu düzeni 


Başa Dön


 

İstemci hizmeti

BeeGFS istemci modülü, BeeGFS dosya sistemine erişmesi gereken tüm konaklarda yüklenir. BeeGFS modülü yüklendiğinde ve beegfs-Client hizmeti başlatıldığında servis, /etc/fstab'e dayalı olarak her zamanki yaklaşım yerine,/etc/beegfs/beegfs-Mounts. conf dosyasında tanımlanan dosya sistemlerini takar.  Bu yaklaşımla birlikte, beegfs-Client , servis başlangıç komut dosyası üzerinden diğer Linux servisleri gibi başlar ve sistem güncelleştirmelerinden sonra BeeGFS istemci modülünün otomatik olarak yeniden derlenmesini sağlar...


Başa Dön


 

Performans Değerlendirmesi

 

Bu bölümde, ıbzone sıralı ve rastgele kıyaslamaları kullanarak HPC BeeGFS yüksek kapasiteli depolama çözümüne yönelik Dell EMC Ready çözümlerinin performans özellikleri sunulur.  Daha düşük ve MDtest ve yüksek uygunluk yapılandırması ile ilgili daha fazla performans için, lütfen daha sonra yayımlanacak bir teknik incelemeyi arayın.

Depolama performansı, IZone karşılaştırmalı (v 3.487) kullanılarak değerlendirilir. Sıralı okuma ve yazma işi ve rastgele okuma ve yazma ıOPS ölçülmüştür. Tablo 2, bu performans çalışmaları için BeeGFS istemcileri olarak kullanılan PowerEdge R840 sunucularının yapılandırmasını açıklar.

İstemciler 8x Dell EMC PowerEdge R840
İşlemci 4 x Intel (R) Xeon (R) Platinum 8260 CPU @ 2,40 GHz, 24 çekirdek
Bellek 24 x 16 GB DDR4 2933MT/s DIMM 'ler-384GB
İşletim Sistemi Red Hat Enterprise Linux Sunucusu sürüm 7,6 (Maipo)
Kernel Sürümü 3.10.0-957.el7.x86_64
Interconnect 1x Mellanox ConnectX-6 tek bağlantı noktalı HDR100 adaptör
OFED Sürümü 4,7-3.2.9.0

Tablo 2 Istemci yapılandırması

Sunucular ve istemciler bir HDR100 ağı üzerinden bağlanır ve aşağıdaki tablo 3 ' de verilen ağ ayrıntıları:  

InfiniBand Anahtarı QM8790 Mellanox hisse HDR Edge anahtarı-IU ile 80x HDR 100 100Mm/s bağlantı noktaları (Splitter kabloları kullanarak)
Yönetim anahtarı Dell Networking S3048-ON ToR anahtar-1U, 48x 1GbE, 4X SFP + 10GbE bağlantı noktası

Tablo 3: Özelliklerindeki
 

Başa Dön

 


 

Sıralı okumalar ve yazmalar N-N

Sıralı okuma ve yazma işlemleri, ıbölgenin sıralı okuma ve yazma modu kullanılarak ölçülmüştür. Bu testler, 1 iş parçacığından başlayıp ikiye katlanarak 512 iş parçacığına kadar olmak üzere çeşitli iş parçacığı sayılarıyla gerçekleştirildi. Bu test iş parçacığı başına bir dosya veya N-N senaryosunda çalıştığı için her iş parçacığı sayısında eşit sayıda dosya oluşturuldu. Bu işlemler, her bir kez yeniden deneme sırasında 8 fiziksel istemci düğümü boyunca dağıtılır, böylece isteklerin yük dengelemesi ile eşit şekilde dağıtılmasını sağlayabilirsiniz.

16 ve üzeri iş parçacığı sayıları için 8 TB 'lik bir toplam dosya boyutunun üzerinde önbelleğe almanın etkilerini en aza indirmek için, ayrıca BeeGFS istemcilerinden de 16 ' nın altında iş parçacığı sayısı için dosya boyutu, iş parçacığı başına 768 GB 'dir (ör. 2 iş parçacığı için, 4 iş parçacığı için, 3 TB ve 8 iş parçacığı için 6 TB). Herhangi bir test içinde kullanılan toplama dosyası boyutu, iş parçacıklarının sayısı arasında eşit şekilde bölünmüştür. Tüm çalıştırmalar için, 1Mıb kayıt boyutu kullanıldı. Sıralı N-N testleri için kullanılan komut aşağıda verilmiştir:

Sıralı yazma ve okumalar: IZone-i $test-c-e-w-r 1m-s $Size-t $Thread-+ n-+ m/Path/to/threadlist


İşletim sistemi önbellekleri Ayrıca, yinelemeler arasındaki sunucularda ve komutu çalıştırarak yazma ve okuma testlerini de bıraktı:

# Sync & & Echo 3 >/proc/sys/VM/drop_caches


Dosya sistemi, yinelemeler arasında ve önbellek temizlemek için yazma ve okuma testleri arasındaki istemcilere takılmamış ve yeniden yazmıştı.

 

SLN320833_en_US__5image005

Şekil 5: N-N sıralı okuma performansı

Şekil 5 ' te 23,70 GB/sn 'nin en yüksek iş hacmi 256 iş parçacıklarından kazanırdır ve 512 iş parçacıklarındaki 22,07 GB/sn için en üst düzeyde yazma. Tek iş parçacığı yazma performansı 623 MB/sn 'dir ve okuma işlemi 717 MB/sn 'dir. Performans ölçekleri, 32 iş parçacıklarını neredeyse baştan erken sağlar. Bu durumdan sonra ölçeklediğiniz gibi okuma ve yazma işlemlerinin olduğunu görebiliriz. Bu, okuma için bu yapılandırmanın genel sürekli performansının ≈ 23GB/sn olduğunu ve yazmaları ≈ 22GB/sn olduğunu ve yukarıda sözü edilen üst düzey kartları olduğunu anlamak için bizi örleştirir. Okumalar, kullanılan iş parçacıklarının sayısından bağımsız olarak, yazma işleminden çok yakındır ya da daha yüksek bir yöntemdir.


Başa Dön


 

Rastgele okuma ve yazma N-N

Oszone rastgele GÇ performansını değerlendirmek için rastgele modda kullanıldı.  Testler, 16-512 iş parçacığından oluşan iş parçacığı sayımlarında gerçekleştirilmiştir.  Self Zone 'ı çalıştırmak için Direct ıO seçeneği (-I), tüm işlemlerin arabellek önbelleğini atlayarak doğrudan diske gitmek için kullanılmıştır. 1Yumurfs şerit sayısı 1 ve 2. parça boyutu kullanıldı. İstek boyutu 4Kıb olarak ayarlanmıştır. Performans saniye başına g/ç işlemlerinde ölçülmüştür (ıOPS). İşletim sistemi önbellekleri, BeeGFS sunucularda çalıştırmalar arasında bırakıldı. Dosya sistemi, test yinelemeleri arasındaki istemcilere takılmamış ve yeniden bir şekilde yeniden bağlanması. Rastgele okuma ve yazma testleri için kullanılan komut şu şekildedir:

IZone-ı 2-w-c-O-I-r 4K-s $Size-t $Thread-+ n-+ m/Path/to/threadlist

SLN320833_en_US__6image006

Şekil 6n-n rastgele performans

Şekil 6, yazma performansının 31K ıOPS 'ye ulaştığı ve 32 iş parçacıklarından 512 iş parçacıklarına kararlı kalacağını göstermektedir. Bunun aksine, okuma performansı, çözüm için test edilen maksimum iş parçacığı sayısı olan 512 iş parçacıklarında 47K ıOPS 'nin en yüksek performanslı GÇ isteği sayısında artış ile artar. ME4, maksimum okuma performansına ulaşmak için daha yüksek bir sıra derinliği gerektirdiğinden grafik, 1024 eş zamanlı iş parçacığı çalıştırıldığımız takdirde daha yüksek bir performans elde olabileceğini gösterir. Ancak testler yalnızca 8 istemci ile çalıştırıldığımız için 1024 iş parçacığı sayısını çalıştırmak için yeterli çekirdeğe sahip olmadıysa.


Başa dön


 

Kullanılan ayarlama parametreleri

Çözümün performans karakterizi gerçekleştirilirken aşağıdaki ayar parametreleri yerine getirildi.

BeeGFS için varsayılan Şerit sayımı 4 ' tür. Ancak, dosya başına öbek boyutu ve hedef sayısı (Stipe Count) dizin başına veya dosya temelinde yapılandırılabilir. Tüm bu sınamalar için, BeeGFS Şerit boyutu 1MB olarak ayarlanmıştır ve şerit sayısı aşağıdaki gösterildiği gibi 1 olarak ayarlanmıştır:

$beegfs-CTL--getentryinfo--Mount =/mnt/beegfs//mnt/beegfs/benchmark/--verbose
Giriş türü: Dizin
EntryId: 1-5E72FAD3-1
parentID: kök
meta veri düğümü: METaa-numa0-1 [ID: 1]
şerit deseni ayrıntıları:
+ Tip: RAıD0
+ ChunkSize: 1m
+ Depolama hedefleri sayısı: istenen: 1
+ Depolama havuzu: 1 (varsayılan)
inode karma yolu: 61/4C/1-5E72FAD3-1

Saydam büyük sayfalar devre dışı bırakıldı ve meta veri ve depolama sunucularında yapılandırılan aşağıdaki sanal bellek ayarları:

  • vm.dirty_background_ratio = 5
  • vm.dirty_ratio = 20
  • vm.min_free_kbytes = 262144
  • vm.vfs_cache_pressure = 50

Depolama sunucularındaki depolama blok aygıtları için aşağıdaki ayarlama seçenekleri kullanılmıştır.

  • IO Planlayıcı son tarihi: son tarih
  • Schedulable isteklerinin sayısı: 2048:
  • En fazla ileri okuma miktarı veri: 4096

Yukarıdaki diğer koda ek olarak, aşağıdaki BeeGFS özel ayarlama seçenekleri kullanılmıştır:
 
beegfs-meta. conf

connMaxInternodeNum = 64
tunenumçalışanlar = 12

tuneuseperusermsgqueues = true # isteğe bağlı
tunetargetchooser = RoundRobin (benchişaretleme)

beegfs-depolama. conf

connMaxInternodeNum = 64
tunenumçalışanlar = 12
tuneusepertargetçalışanlar = true
tuneuseperusermsgqueues = true # isteğe bağlı
tunebindtonumazone = 0
tunefilereadaheadsıze = 2m

beegfs-Client. conf

connMaxInternodeNum = 24
connbufsize = 720896


Başa Dön


 

Sonuç ve gelecekteki çalışma

 

Bu blog, Dell EMC BeeGFS yüksek kapasiteli depolama çözümünün serbest bırakılması ve performans özelliklerini vurgulamaları duyuruyor. Bu çözüm, ıozone sıralı kıyaslamaları kullanan yazma işlemlerinde okuma ve 22,1 GB/sn için 23,7 GB/sn. ' lik en yüksek performans sağlar. Ayrıca, 31.3 K ıOPS 'de ve 47.5 K ıOPS 'de rastgele okumaların en yüksek rasgele yazmaları da görürler.

Sonraki adımların bir parçası olarak, meta veri performansı ve N iş parçacıklarını bu çözümün tek bir dosyasına (N-1) daha düşük performans olacak şekilde değerlendiriyoruz. Çözüm ve değerlendirme işlemi tamamlandıktan sonra, yüksek kullanılabilirlik ile bu yüksek kapasite çözümü için yapılan tasarım etkenleri ile ilgili ek bilgilerle çözümün meta verilerini ve daha düşük performans konularını açıklayan teknik bir rapor.


Başa Dön


Article Properties


Affected Product

High Performance Computing Solution Resources

Last Published Date

27 Apr 2021

Version

5

Article Type

Solution