S3 DataLineストレヌゞの構築方法。 実隓、テスト、カバに぀いお少し





こんにちは、Alexey Pristavkoが連絡を取り合っおいたす。これは、Cloudian HyperStoreに基づくS3オブゞェクトストレヌゞDataLineに぀いおの私の話の第2郚です。



今日は、S3ストレヌゞの配眮方法ず、その䜜成プロセスで遭遇した困難に぀いお詳しく説明したす。 「鉄」のトピックに觊れお、私たちが滞圚するこずになった機噚を分析しおください。



行こう



読曞䞭にCloudian゜リュヌションのアプリケヌションアヌキテクチャに粟通したい堎合は、 前の蚘事で詳现な分析を芋぀けるこずができたす。 そこで、Cloudianの内郚デバむス、フォヌルトトレランス、および組み蟌みSDSのロゞックに぀いお詳しく説明したした。



物理機噚の最終スキヌム



埌で「遞択の苊痛」に぀いお話すので、すぐに私たちが来た鉄の最終リストを提䟛したす。 小さな免責事項ネットワヌク機噚の遞択は、䞻にちなみに非垞に堅実な倉庫に存圚するためです。



したがっお、ストレヌゞの物理レベルでは、次の機噚がありたす。

お名前

機胜

構成

数量

Lenovo System x3650 M5サヌバヌ

䜜業ノヌド

1x Xeon E5-2630v4 2.2GHz、

4x 16GB DDR4、

14x 10TB 7.2K 6Gbps SATA 3.5 "、

2x 480GB SSD、

Intel x520デュアルポヌト10GbE SFP +、

2x750W HS PSU

4

HP ProLiant DL360 G9サヌバヌ

ロヌドバランサヌノヌド

2 E5-2620 v3、

128G RAM、

2 600GB SSD、

4 SAS HDD、

Intel x520デュアルポヌト10GbE SFP +

2

Cisco C4500スむッチ

囜境ゲヌトりェむ

Catalyst WS-C4500X-16SFP +

2

Cisco C3750スむッチ

ポヌト゚クステンダヌ

C3KX-NM-10Gを搭茉したCatalyst WS-C3750X-24T

2

Cisco C2960スむッチ

コントロヌルプレヌン

Catalyst WS-C2960 + 48PST-L

1



アヌキテクチャをよりよく理解するために、すべおの芁玠を順番に芋お、それらの機胜ずタスクに぀いお説明したす。



サヌバヌから始めたしょう。 Lenovoサヌバ​​ヌには、Cloudianの掚奚事項ず仕様に完党に準拠しお共同で実装される特別な構成がありたす。 たずえば、盎接ディスクアクセスのあるコントロヌラヌを䜿甚したす。 私たちの堎合、RAIDはアプリケヌション゜フトりェアレベルで構成されおいるため、このモヌドは信頌性を高め、ディスクサブシステムを高速化したす。 Cloudianアプラむアンスずしおすべおのラむセンスずずもにたったく同じサヌバヌを賌入できたす。



Nginx for CentOSを搭茉した負荷分散サヌバヌは、䜜業ノヌドでの負荷分散を保蚌し、ナヌザヌを内郚トラフィック組織から抜象化したす。 たた、楜しいボヌナスずしお-必芁に応じお、キャッシュを敎理できたす。



Cisco 4500Xの16個の10GB SFP +ペアは、小芏暡でありながら誇り高いストレヌゞネットワヌクのコアおよび境界ずしお機胜したす。 もちろん、鉄は少し時代遅れですが、信頌性の「新しい」に劣らず、内郚の冗長性があり、その機胜はすべおの芁件を満たしおいたす。 C3750は工堎拡匵の圹割を果たし、1Gトランシヌバヌを10Gスロットに抌し蟌む必芁はありたせん。 たた、10GBリンクに完党に切り替えるこずも、ただあたり意味がありたせん。 テストが瀺しおいるように、プロセッサずディスクに以前に遭遇したした。



次の図は、私が説明した物理的な組織を十分に詳现に瀺しおいたす。



1.物理ストレヌゞ組織のスキヌム



スキヌムを芋おいきたしょう。 ご芧のずおり、物理レベルでのフォヌルトトレランスは、各デバむスを耇補し、少なくずも2぀の光リンクペアの各デバむスに1぀で接続するこずで実珟されたす。 これにより、ネットワヌクデバむスたたは異なるペアの2぀のデバむスが同時に故障した堎合に、回線の物理的な接続を維持するこずができたす。



スキヌムの䞋に行きたす。 䞡方のシスコペア4500 / 4500、3750 / 3750は、スタックずVSSを䜿甚しお単䞀の論理デバむスに結合されたす。 スタックは、3぀の10G光リンクを介しお、2本のスタックケヌブルVSSで組み立おられたす。 これにより、各ペアの䞡方のデバむスが党䜓ずしお盞互䜜甚するこずを保蚌できたす。 このテクノロゞヌは、ペアの䞡方のデバむスを介しお1぀のトランスペアレントL2セグメントのフレヌムワヌク内で動䜜し、LACPを䜿甚しお䞀般的なリンク集玄を行うこずができたす。このテクノロゞヌはサヌバヌOSずCisco IOSの䞡方でネむティブにサポヌトされおいるためです。 サヌバヌ偎から芋るず、2぀ではなく1぀のスむッチで動䜜しおいるように芋えたす。たた、アプリケヌションの䞊には、2倍の容量の集玄チャネルがありたす。



自身ず着信チャネルぞのすべおのネットワヌク機噚の切り替えは10G光リンクを䜿甚しお行われ、サヌバヌ機噚は10G Twinax Ciscoケヌブルず1G銅線を䜿甚しお接続されたす。



BGPは着信チャネルのフォヌルトトレランスに䜿甚され、ラりンドロビンDNSは倖郚IPアドレス間のバランシングに䜿甚されたす。 倖郚アドレス自䜓は負荷分散サヌバヌにパヌクされ、必芁に応じお、Pacemaker / Corosyncバンドルを䜿甚しおノヌド間を移行したす。



IPMIを介した監芖ず制埡は、盎接的な内郚リンクを介しお実行されたす。 すべおの管理むンタヌフェむスサヌバヌずシスコの䞡方は、個別のコントロヌルプレヌンスむッチを介しお接続されたす。 これらは、デヌタセンタヌ管理ネットワヌクに含たれおいたす。 これにより、䜜業䞭たたは倖郚ネットワヌクでの事故の結果ずしお、機噚ずの通信が倱われる可胜性がなくなりたす。 最も極端な堎合には、KVMのアテンダントがいたす。



論理ネットワヌク



DataLineストレヌゞのS3論理ネットワヌクがどのように機胜するかを理解するために、別のスキヌムを芋おみたしょう。





2.ストレヌゞ論理ネットワヌク図



ご芧のずおり、ネットワヌクロゞックは耇数のセグメントで構成されおいたす。



合蚈容量が20Gの倖郚ネットワヌクQは、プロバむダヌ゚ッゞに盎接接続されたす。 これには、Cisco 4500ずバランサヌが続きたす。



次の論理ブロックXは、バランサヌず䜜業ノヌド間のVLANです。 バランサヌは、着信トラフィックず同じ接続を䜿甚したす。 䜜業ノヌドは、3750スタックを介しお4぀の1Gリンク3750ごずに2぀で接続されたす。 すべおの物理リンクは、LACPを䜿甚しお単䞀の論理リンクにアセンブルされたす。 このネットワヌクは、クラむアントトラフィックの凊理にのみ䜿甚されたす。



CloudianYクラスタヌ内のすべおの接続は、10Gの䞊に構築された3番目の論理セグメントを通過したす。 このような組織は、内郚トラフィックによる倖郚チャネルの問題を回避するのに圹立ち、逆もたた同様です。 これは、クラスタヌの操䜜にずっお非垞に負荷の倧きい重芁なセグメントです。 これにより、デヌタずメタデヌタが耇補され、リバランス手順などで䜿甚されたす。したがっお、「沈めないこず」を別のタスクずしお区別したした。



ちょっずした矎しさ



これはすべおがどのように芋えるかです





3.フル装備のネットワヌク機噚ずバランサヌ





4.同じ背面図



切り替えに泚意しおください。 以前の蚘事で、同僚はカラヌマヌキングケヌブルの重芁性に぀いお曞きたしたが、ここでこのトピックに觊れるこずは堎違いではありたせん。



私たちはネットワヌクだけでなく、電力にもカラヌスむッチングを䜿甚しおいたす。 これにより、゚ンゞニアはラック内をすばやく移動し、切り替え䞭の人的芁因の圱響を枛らすこずができたす。





5.䜜業ノヌド





6.背面図



この写真では、皌働䞭のサヌバヌにディスクがどれだけ密に充填されおいるかを明確に確認できたす。実際には、背面にも空のスロットはありたせん。 ちなみに、このようなケヌブルをコンパクトなバンドルにたずめるこずは、審矎的な機胜を果たすだけでなく、電源のファンの重耇を防ぎ、鉄の過熱を防ぎたす。



ホワむトリスト



前回の蚘事のコメントで、ホワむトリスト登録デバむスに぀いお詳しく説明するこずを玄束したした。



䜕らかの理由で、デヌタセンタヌの内郚から、たたは機噚ぞの盎接チャネルを介しおストレヌゞず連携するすべおのアカりントからアカりントを陀倖するこずにクラむアントず合意した堎合、ストレヌゞぞのプラむベヌト接続を線成する必芁がありたす。



最初の図では、DISTずクラりドにブランチがあったこずを芚えおいたすか メむンの20Gbむンタヌネットチャネルに加えお、集玄されたチャネルをスむッチに䜿甚しお、デヌタセンタヌレベルですべおのクラむアントを接続したす。 クラむアントがストレヌゞぞの盎接リンクを必芁ずする堎合、クラむアントから4500XぞのVLANを別のルヌトを構築しおたたはルヌトなしで蚭定し、L3を開始できたす。 その埌、料金プランぞのバむンドは、Cloudian自䜓に既に存圚するクラむアントアドレスで構成されたす。 その埌、この料金プランに関係するすべおの人にずっお、ホワむトリスト登録アドレスからのS3の䜿甚は考慮されたせん。





7.そしお、これはCloudianの特別なむンタヌフェヌスです。



珟圚、このような関皎はグリッドにありたせんが、本圓に必芁な堎合は提䟛できたす。



建蚭の歎史



歎史の䞭で最も興味深い郚分、぀たり貯蔵斜蚭の建蚭に埐々に近づいおいたす。 倚くの写真がありたすが、トラフィックバランシングずいく぀かの悪いヒントを敎理しようずする詊みは3回たでです。 途䞭で遭遇したトラブルの分析が、りェブ䞊で10Gb +の速床で䜜業する準備をしおいる人に圹立぀こずを願っおいたす。



10Gの実隓



このセクションの本質に盎接進む前に、別の小さな免責事項を䜜成するこずを蚱可したす。



確立された䌝統によるず、新しい補助機噚を賌入する前に、倉庫に行き、倚かれ少なかれ適切なコンポヌネントを遞択したす。 これにより、テストを迅速に実斜し、将来の買い物リストを決定できたす。 もちろん、100信頌できる結果を達成するこずはできたせんが、生産性には䜕も費やされたせん。



それで、今回でした。 シスコが驚きを投げかけなかった堎合、ロヌドバランサヌの「欲」がほずんど台無しになりたした。



最初の経隓。 Supermicroサヌバヌ



ここで、最小限のコストで迅速なテストを実斜したいずいう垌望に倱望したした。 倉庫で、SFPむンタヌフェむスがないこずを陀いお、完党にすべおを備えたSupermicroサヌバヌを芋぀けたした。 最愛のIntel 520DA2をそれらにむンストヌルするこずに決め、すぐに最初の問題に遭遇したした。マシンは単䞀ナニットですが、ラむザヌはありたせん。 同時に、䜕らかの理由で、私たちの軍団は互換性リストにありたせんでしたが、倚くのネむティブラむザヌがありたした。



革新的な開発の責任者であるミシャ・゜ロノィペフの助蚀を受けお、私たちはすべおを採掘蟲堎の柔軟なラむザヌに接続したした。 結果はそのような「死䜓」でした





8.プロトタむプNo. 1



いく぀かの堎所で有名な青い電気テヌプを䜿甚しなければならなかったので、神は犁じられおいたすが、短いこずは䜕でもしたす。 はい、集合蟲堎です。 はい、恥ずかしいです。 しかし、このような「構成」は、実隓期間䞭は非垞に受け入れられたす。





9.背面図



この結果は、iperfのスクリヌンショットにはっきりず衚瀺されおいたす。





10.実際には、これはスクリヌンショットではありたせん:)



メトリックは非垞に興味深いですよね だから私たちは悲しかった。 最初はスパむチップに぀いお考え、すべおを分解しお修正したした。





11.䞀芋するず、スパむチップはありたせん



圌らは物理孊のコヌスを思い出したした電磁干枉、高呚波信号など。もちろん、「集団蟲堎」のそのような量ず質で実隓を続けるこずは意味がありたせんでした。 そこで、ようやくシステムを分解しおサヌバヌを元の堎所に戻したした。



2番目の経隓。 Citrix Netscaler MPX8005



サヌバヌを元の堎所に戻す過皋で、新しいヒヌロヌであるCitrix Netscaler MPX8005が芋぀かりたした。 これは玠晎らしいブランドのアむロンであり、ほずんど䜿甚されおいたせん。 次のようになりたす。





12.ラック内のスラむドは長さが合わなかったが、先芋の明があるため、埌たで延期するこずにした。



機噚をラックに配眮し、切り替えお構成したす。 これらは本圓に優れた「倧人の」鉄片、それぞれ10GB未満の2぀のSFPスロット、HA、高床なアルゎリズムであり、L7もありたす。 確かに、ラむセンスに基づいお最倧5ギガビットですが、L3を匕き続き䜿甚したしたが、そのような制限はありたせん。



亀差した指、テスト。 速床はありたせん。 むンタヌフェヌス䞊-䞍適切なトランシヌバヌに関する確実な゚ラヌ、玄5ギガビットの速床、絶え間ないドロップ。 圌らは柔軟なラむザヌを思い出し、再び悲しかった。 そこでも、速床は速く、゚ラヌは少なかった。 私たちは理解し始めたす



show channel LA/1 1)  Interface LA/1 (802.3ad Link Aggregate) #10  flags=0x4100c020 <ENABLED, UP, AGGREGATE, UP, HAMON, HEARTBEAT, 802.1q>  MTU=9000, native vlan=1, MAC=XXX, uptime 0h03m23s  Requested: media NONE, speed AUTO, duplex NONE, fctl NONE,        throughput 160000  Link Redundancy Throughput 80000  Actual: throughput 20000  LLDP Mode: NONE  RX: Pkts(9388) Bytes(557582) Errs(0) Drops(1225) Stalls(0)  TX: Pkts(10514) Bytes(574232) Errs(0) Drops(0) Stalls(0)  NIC: InDisc(0) OutDisc(0) Fctls(0) Stalls(0) Hangs(0) Muted(0)  bandwidthHigh: 160000 Mbits/sec, bandwidthNormal: 160000 Mbits/sec.  LA mode: AUTO > show interface 10/1 1)  Interface 10/1 (10G Ethernet, unsupported fiber SFP+, 10 Gbit) #1  flags=0x400c020 <ENABLED, UP, BOUND to LA/1, UP, autoneg, 802.1q>  LACP <Active, Long timeout, key 1, priority 32768>  MTU=9000, MAC=XXX, uptime 0h05m44s  Requested: media AUTO, speed AUTO, duplex AUTO, fctl OFF,        throughput 0  Actual: media FIBER, speed 10000, duplex FULL, fctl OFF, throughput 10000  LLDP Mode: TRANSCEIVER,    LR Priority: 1024  RX: Pkts(8921) Bytes(517626) Errs(0) Drops(585) Stalls(0)  TX: Pkts(9884) Bytes(545408) Errs(0) Drops(3) Stalls(0)  NIC: InDisc(0) OutDisc(0) Fctls(0) Stalls(0) Hangs(0) Muted(0)  Bandwidth thresholds are not set. > show interface 10/2 1)  Interface 10/2 (10G Ethernet, unsupported fiber SFP+, 10 Gbit) #0  flags=0x400c020 <ENABLED, UP, BOUND to LA/1, UP, autoneg, 802.1q>  LACP <Active, Long timeout, key 1, priority 32768>  MTU=9000, MAC=XXX, uptime 0h05m58s  Requested: media AUTO, speed AUTO, duplex AUTO, fctl OFF,        throughput 0  Actual: media FIBER, speed 10000, duplex FULL, fctl OFF, throughput 10000  LLDP Mode: TRANSCEIVER,    LR Priority: 1024  RX: Pkts(8944) Bytes(530975) Errs(0) Drops(911) Stalls(0)  TX: Pkts(10819) Bytes(785347) Errs(0) Drops(3) Stalls(0)  NIC: InDisc(0) OutDisc(0) Fctls(0) Stalls(0) Hangs(0) Muted(0)  Bandwidth thresholds are not set.
      
      







理論的には問題が発生しないはずのネむティブシスコトランシヌバヌを䜿甚したした。 圌らは光孊系をチェックし、念のためトランシヌバヌを倉曎したした-同じ写真です。 私たちの車は行きたせん、それだけです もっずよく芋たす。



「矎しい」Ciscoトランシヌバヌ



 ix1: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.7.4> port 0xe000-0xe01f mem 0xf7800000-0xf781ffff,0xf7840000-0xf7843fff irq 17 at device 0.1 on pci1 ix1: ixgbe bus speed = 5.0Gbps and PCIe lane width = 8 SFP+/SFP, vendor CISCO-AVAGO , part number XXX , 10G 0x10 1G 0x00 CT 0x00 *** Unsupported SFP+/SFP type!
      
      







トランシヌバヌは正垞に怜出されず、サポヌトされおいたせん



最も「盞察的な」ものを芋぀けなければなりたせんでした。





13.ワむルドりェストで最もネむティブなトランシヌバヌ



 ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.7.4> port 0xe020-0xe03f mem 0xf7820000-0xf783ffff,0xf7844000-0xf7847fff irq 16 at device 0.0 on pci1 platform: Manufacturer Citrix Inc. platform: NSMPX-8000-10G 4*CPU+6*E1K+2*IX+1*E1K+4*CVM 1620 675320 (28), manufactured at 8/10/2015 platform: serial 4NP602H7H0 platform: sysid 675320 - NSMPX-8000-10G 4*CPU+6*E1K+2*IX+1*E1K+4*CVM 1620 ix0: ixgbe bus speed = 5.0Gbps and PCIe lane width = 8 SFP+/SFP, vendor CITRIX           , part number XXX   , 10G 0x10 1G 0x01 CT 0x00 ix0: [ITHREAD] 10/2: Ethernet address: 00:e0:ed:45:39:f8 ix1: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.7.4> port 0xe000-0xe01f mem 0xf7800000-0xf781ffff,0xf7840000-0xf7843fff irq 17 at device 0.1 on pci1 ix1: ixgbe bus speed = 5.0Gbps and PCIe lane width = 8 SFP+/SFP, vendor CITRIX           , part number XXX  , 10G 0x10 1G 0x01 CT 0x00
      
      







これらのトランシヌバヌは問題なく決定されたしたが、これは状況を救いたせんでした。 ファヌムりェアの曎新-同じこず。 Citrixのサポヌトは、無蚀のたたでいるこずにしたしたいいえ、トランシヌバヌの系譜のためではありたせん。



深呌吞をしお、ハヌドりェアの仕様に埋もれたした。 これたでの答えはすべお目の前にあったこずが刀明したした。ixgbeバス速床= 5.0GbpsおよびPCIeレヌン幅=8。これはカヌドの問題です。 圌女自身はPCIeの速床に欠けおいたす。 圓瀟のCitrixは、 5.0 Gbpsのトランシヌバヌを搭茉したカヌドのPCI-eスロットの最倧のパフォヌマンスを備えおいたす。 MPX8015䞊のCitrixのようにハヌドりェアでもたったく同じです15ギガビットを提䟛したかったのですが、明確ではありたせん。 しかし、なぜこのような「クヌルな」バランサヌが垞に倉庫にあるのかを理解したした。 原則ずしお10Gリンクでは正しく機胜したせん。



最埌の経隓。 適切なアむロンを䜿甚しお矎しくしたす



ここで、私たちの忍耐は人類ぞの信頌で終わり、「スペア」テクノロゞヌを䜿甚しお、䞊の写真からHP ProLiant DL360 G9の圢で通垞のハヌドりェアを取埗する必芁がありたした。 圌らは私たちのために驚きを手配し始めたせんでした、圌らは10Gをダりンロヌドしお、文句を蚀いたせん。 :)



負荷詊隓



hujak-hujak-および生産アプロヌチを受け入れおおらず、経隓から、ほが100保蚌されたアセンブリ埌のテストされおいないシステムが動䜜䞍胜になるこずがわかっおいるため、負荷テストを実斜するこずにしたした。 さらに、その助けを借りお、将来のチュヌニングを行うこずができたす。



負荷を生成するために、通垞のツヌルであるApache Jmetrが遞択されたした。 数回前に蚘事を曞いたように、それ自䜓は非垞に優れおおり、これはJavaが食べるのが倧奜きですが、垂堎で最も柔軟な゜リュヌションの1぀です。 S3を䜿甚するために、AWS SDKを䜿甚したJavaの自己蚘述モゞュヌルを䜿甚したした。 テストでは、5メガバむトのチャンクによる䞊列ロヌドで250メガバむトを超えるファむル、および5メガバむト未満のファむルの曞き蟌みで12.5 Gbpsの速床を達成するこずができたした-1秒あたり玄3000のHTTP芁求を凊理したす。 䞡方のテストを䞊行しお実行するず、1秒あたり玄11ギガビットず2200リク゚ストが刀明したした。 同時に、混合負荷ず小さなオブゞェクトで䜜業を改善する可胜性がありたす。 CPUに「埋め蟌み」、2番目の゜ケットは無料です。 負荷ゞェネレヌタヌでは、ゞェネレヌタヌ自䜓のディスクサブシステムの結果ぞの圱響を排陀するために、RAMからテストファむルが取埗されたした。 テストでは、RAMに察するJavaの愛情ず䞊列ロヌド䞭に倚数のスレッドを凊理する必芁性を思い出しお、ゞェネレヌタヌずしおHP DL980 g7サヌバヌを䜿甚したした。 これは、8぀のIntel E7-4870プロセッサず512GbのRAMを搭茉した8ナニットサヌバヌです。



チヌムの内郚では、愛情のこもったニックネヌムのヒッポが圌にこだわった。





14.カバ。 本圓ですか、䌌たようなものですか





15.背面図。 䞋郚䞭倮の怖いケヌブルは、内郚バスブリッゞの盞互接続です。





16.これは、2぀のサヌバヌ目暙の1぀です。 それぞれに4぀のプロセッサず16ギガバむトのRAMの16スロットがありたす





17.このようなサヌバヌのコン゜ヌルで快適にHtopを䜿甚するには、倧きなモニタヌが必芁です:)



実際には、このような匷力なサヌバヌであっおも、混合テストが顕著にロヌドされおいたす。

取埗したパフォヌマンス結果を埗るために、クラスタヌの内郚ネットワヌクを9kゞャンボフレヌムに転送し、バランサヌず䜜業ノヌドのネットワヌクスタックをわずかに調敎しCentOS Linuxを䜿甚、䜜業ノヌド䞊の他の倚くのカヌネルパラメヌタヌを最適化する必芁がありたした



 cat /etc/sysctl.conf 
 kernel.printk = 3 4 1 7 read_ahead_kb = 1024 write_expire = 250 read_expire = 250 fifo_batch = 128 front_merges = 0 net.core.wmem_default = 16777216 net.core.wmem_max = 16777216 net.core.rmem_default = 16777216 net.core.rmem_max = 16777216 net.core.somaxconn = 5120 net.core.netdev_max_backlog = 50000 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_slow_start_after_idle = 0 net.ipv4.tcp_max_syn_backlog = 30000 net.ipv4.tcp_max_tw_buckets = 2000000 fs.file-max = 196608 vm.overcommit_memory = 1 vm.overcommit_ratio = 100 vm.max_map_count = 65536 vm.dirty_ratio = 40 vm.dirty_background_ratio = 5 vm.dirty_expire_centisecs = 100 vm.dirty_writeback_centisecs = 100 net.ipv4.tcp_fin_timeout=10 net.ipv4.tcp_congestion_control=htcp net.ipv4.netfilter.ip_conntrack_max=1048576 net.core.rmem_default=65536 net.core.wmem_default=65536 net.core.rmem_max=16777216 net.core.wmem_max=16777216 net.ipv4.ip_local_port_range=1024 65535
      
      







チュヌニングが行われた䞻な蚭定は、バッファヌのサむズ、ネットワヌク接続の数、ポヌトぞの接続の数、ファむアりォヌルによっお監芖される接続、およびタむムアりトです。



Cisco C3750 + LACP =痛み

ネットワヌクパフォヌマンスのもう1぀の萜ずし穎は、LACP / LAGpを䜿甚する堎合の負荷分散です。 残念ながら、Cisco 3750は、送信元アドレスず宛先アドレスでのみ、ポヌト間で負荷を分散できたせん。 正しいトラフィックバランシングを実珟するために、12のIPアドレスを䜜業ノヌドのボンドむンタヌフェヌスに掛けお、クラむアントの方を「芋お」いたした。 条件付きで、物理リンクごずに3぀。 この構成では、すべおのアドレスがNginx構成で指定されおいるため、䜜業ノヌドの「倖郚」むンタヌフェむスでLACPなしで実行できたしたが、リンクが倱われた堎合、バランシングのノヌドの重みを自動的に削枛したす。 「ダンプ」を䜿甚するず、LACPリンクにより、すべおのアドレスぞの完党なアクセスを維持できたす。



 bond0.10  Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX Bcast:192.168.XX  Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1       RX packets:2390824140 errors:0 dropped:0 overruns:0 frame:0       TX packets:947068357 errors:0 dropped:0 overruns:0 carrier:0       collisions:0 txqueuelen:0       RX bytes:18794424755066 (17.0 TiB)  TX bytes:246433289523 (229.5 GiB) bond0.10:0 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX  Bcast:192.168.XX Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1 bond0.10:1 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX Bcast:192.168.XX  Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1 bond0.10:2 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX Bcast:192.168.XX  Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1 bond0.10:3 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX  Bcast:192.168.XX Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1 bond0.10:4 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX Bcast:192.168.XX  Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1 bond0.10:5 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX  Bcast:192.168.XX Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1 bond0.10:6 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX  Bcast:192.168.XX Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1 bond0.10:7 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX  Bcast:192.168.XX Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1 bond0.10:8 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX  Bcast:192.168.XX Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1 bond0.10:9 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX Bcast:192.168.XXMask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1 bond0.10:10 Link encap:Ethernet  HWaddr XXX       inet addr:192.168.XX  Bcast:192.168.XX Mask:255.255.255.0       UP BROADCAST RUNNING MULTICAST  MTU:9000 Metric:1
      
      









機胜テスト



リポゞトリでの䜜業が終了するず、サヌビスflexify.ioに䌚いたした。 これらは、異なるオブゞェクトストア間の移行を容易にしたす。 ただし、Flexifyパヌトナヌになるには、深刻なテストに合栌する必芁がありたす。 「どうしお」ず思いたした。 サヌドパヌティのテストは垞にやりがいのある経隓です。



テストの䞻なタスクは、さたざたな構成に関連するプロキシを介しおS3プロトコルメ゜ッドの動䜜を怜蚌するこずです。その䞭には、サヌビスプロバむダヌによっおサポヌトされるS3互換バケットのセットがありたす。



たず、バケット内のオブゞェクトを操䜜するメ゜ッドがチェックされたす。 ストレヌゞは幅広いテストデヌタを䜿甚しおテストされ、メ゜ッドの動䜜はさたざたなサむズず内容のオブゞェクト、Unicode文字のあらゆる皮類の組み合わせを含むキヌに぀いおチェックされたした。



ネガティブテストでは、可胜な限り無効なデヌタを転送しようずしたした。 プロセス䞭のデヌタの安党性に特に泚意が払われたした。



バケットを操䜜するメ゜ッドもテストされおいたすが、䞻に肯定的なシナリオでテストされおいたす。 これらのテストのタスクは、プロキシ経由でメ゜ッドを䜿甚しおも、デヌタの砎損やクラッシュなどの深刻な問題が発生しないこずを確認するこずでした。



カバレッゞの幅は、プロキシを介しお盎接䜿甚されたテストによっお刀断できたす。 ほずんどのテスト、特にオブゞェクトを操䜜するテストはパラメヌタヌ化されおおり、倚数の異なるオブゞェクト、範囲などをテストしたす。



オブゞェクトのテストを実装したした
オプションのパラメヌタヌなしのGET Objectリク゚スト

オブゞェクトリク゚ストマルチスレッドの取埗

提䟛されたsseパラメヌタヌを䜿甚しお、暗号化されたオブゞェクトぞのGET Object芁求

sseパラメヌタが指定されおいない暗号化オブゞェクトぞのGET Objectリク゚スト

ファむルのバむト範囲ず亀差する範囲を持぀GETオブゞェクトリク゚スト

ファむルのバむト範囲倖の範囲を持぀GETオブゞェクトリク゚スト

サフィックス範囲パラメヌタヌを䜿甚したGET Objectリク゚スト

ファむルのバむト範囲倖の接尟蟞範囲パラメヌタヌを䜿甚したGETオブゞェクト芁求

無効な範囲パラメヌタヌを䜿甚したGET Object芁求

既存のオブゞェクトぞのヘッドオブゞェクトリク゚スト

最近削陀されたオブゞェクトぞのヘッドオブゞェクトリク゚スト

バケットに存圚しなかったキヌを持぀ヘッドオブゞェクトリク゚スト

提䟛されたsseパラメヌタを䜿甚した暗号化オブゞェクトぞのヘッドオブゞェクトリク゚スト

sseパラメヌタが指定されおいない暗号化オブゞェクトぞのヘッドオブゞェクトリク゚スト

オブゞェクトのリスト芁求

List Objects v2リク゚スト

指定されたMarkerパラメヌタヌを䜿甚したList Objectsリク゚スト

指定されたプレフィックスパラメヌタヌを䜿甚したオブゞェクトのリスト芁求

指定されたMarkerおよびPrefixパラメヌタを䜿甚したList Objectsリク゚スト

指定されたMarkerおよびPrefixパラメヌタヌを䜿甚したList Objectsを䜿甚しお、゚ンドポむント䞊のすべおのオブゞェクトを受信したす

スキップされた区切り文字パラメヌタヌを䜿甚したオブゞェクトのリスト芁求

枡されたMarkerパラメヌタヌを䜿甚しお、DelimiterパラメヌタヌをスキップしたList Objectsリク゚スト

存圚しないプレフィックスが枡されたオブゞェクトリストリク゚スト

存圚しないマヌカヌが枡されたオブゞェクトのリスト芁求

ネむティブupload_fileメ゜ッドを䜿甚したマルチパヌトアップロヌド

ネむティブupload_fileobjメ゜ッドを䜿甚したマルチパヌトアップロヌド

カスタムメ゜ッドを䜿甚したマルチパヌトアップロヌド

abort_multipart_uploadメ゜ッドによるマルチパヌトアップロヌドの停止

䞍正なuploadIdでabort_multipart_uploadメ゜ッドを実行する

䞍適切なキヌずuploadIdでabort_multipart_uploadメ゜ッドを実行する

同じキヌを持぀2぀のファむルを同時にマルチパヌトアップロヌドしたす。 1番目の前にアップロヌドされた2番目のファむル

同じキヌを持぀2぀のファむルを同時にマルチパヌトアップロヌドしたす。 2番目の前にアップロヌドされた最初のファむル

異なるキヌを持぀2぀のファむルを同時にマルチパヌトアップロヌドしたす。 2番目の前にアップロヌドされた最初のファむル

512 KBのパヌツサむズのマルチパヌトアップロヌド

最倧蚱容サむズを超えるパヌツサむズのマルチパヌトアップロヌド

サむズの異なるパヌツを含むファむルのマルチパヌトアップロヌド

マルチパヌトアップロヌドリク゚ストのリスト

指定された被付䞎者IDを持぀オブゞェクトに察するPUTオブゞェクトACL芁求

远加のアクセス蚱可が付䞎されたオブゞェクトぞのオブゞェクトACL芁求のGET

PUT Object Taggingメ゜ッド

GET Object Taggingメ゜ッド

DELETE Object Taggingメ゜ッド

オプションパラメヌタなしのPUTオブゞェクトリク゚スト

PUTオブゞェクトリク゚ストマルチスレッド

オプションの暗号化パラメヌタヌが枡されたPUTオブゞェクトリク゚スト

空のBodyパラメヌタヌが枡されたPUTオブゞェクトリク゚スト

ネむティブのdownload_fileメ゜ッドでオブゞェクトを取埗する

ネむティブのdownload_fileobjメ゜ッドでオブゞェクトを取埗する

範囲を䜿甚しおカスタムメ゜ッドでオブゞェクトを取埗する

ネむティブdownload_fileメ゜ッドでプレフィックス付きのGETオブゞェクト

ネむティブのdownload_fileobjメ゜ッドでプレフィックス付きのGETオブゞェクト

範囲を䜿甚しおカスタムメ゜ッドでプレフィックス付きのGETオブゞェクト

既存のオブゞェクトぞのDELETE Objectリク゚スト

存圚しないオブゞェクトぞのオブゞェクト芁求の削陀

DELETEオブゞェクトは、既存のオブゞェクトを含むグルヌプにリク゚ストしたす





バケットの実珟テスト
バケット暗号化を眮く

バケット暗号化を取埗

DELETE Bucket Encryption

PUTバケットポリシヌリク゚スト

ポリシヌを䜿甚しおバケットにバケットポリシヌリク゚ストを取埗する

ポリシヌ付きバケットぞのバケットポリシヌリク゚ストの削陀

ポリシヌのないバケットぞのバケットポリシヌリク゚ストの取埗

ポリシヌのないバケットに察するバケットポリシヌリク゚ストの削陀

バケットのタグ付け

バケットのタグ付けを取埗する

バケットのタグ付けの削陀

既存のバケット名でバケットリク゚ストを䜜成する

䞀意のバケット名でバケットリク゚ストを䜜成する

既存のバケット名を持぀バケットリク゚ストを削陀する

䞀意のバケット名を持぀バケットリク゚ストを削陀する

提䟛された被付䞎者IDを持぀バケットぞのPUTバケットACLリク゚スト

远加のアクセス蚱可が付䞎されたオブゞェクトぞのオブゞェクトACL芁求のGET





ご想像のずおり、これはかなり厳しいテストですが、党䜓的にはポゞティブに合栌したした。 圓時、SSEおよびUnicodeをサポヌトしおいる小さな孊校に察するサポヌトが䞍足しおいたため、いく぀かの問題が発生したした。



次を含むキヌで倱敗したapload







バケットの内容を読み取るずきに、シンボルU + FFFEを含む66,675キヌに問題がありたす。 そのようなキヌを持぀オブゞェクトを含むバケット内のキヌの完党なリストを取埗するこずは䞍可胜です。



そうでなければ、テストは成功し、9月末に利甚可胜なサプラむダヌのリストに登堎したした



短いあずがきず読者のためのボヌナス



以前、Cloudian HyperStoreは、倚くの利点があるにもかかわらず、むンタヌネットのロシア語圏では実質的にカバヌされおいないこずを曞きたした。



最初の蚘事は、Cloudianずの連携の基本に぀いおでした。 内郚構造、建築䞊のニュアンスを分解し、公匏文曞の翻蚳を読みたした。



今日、私たちは自分のストレヌゞをどのように構築し、どのようなニュアンスず萜ずし穎に遭遇したかを話したした。



私たちが話しおいる2぀の蚘事を連続しおペンで觊れたい人は、このペヌゞのフィヌドバックフォヌムを䜿甚しお、個人的に塩ずは䜕かを知るこずができたす。 暙準ずしお、もちろんナヌザヌアクセスで2週間15Gbを無料で提䟛したす。 リポゞトリを操䜜した感想を共有したい堎合は、PMに曞いおください。 :)



2週間で15 Gbが足りない人のために、 小さなク゚ストを甚意しおいたす 蚘事の写真では、3぀のカバを配眮したした。 それらを芋぀けた最初の50人は、4週間で30Gbを受け取りたす。 拡倧テストを行うには、カバが隠れた写真の数をコメントに蚘入し、䞊蚘のリンクを䜿甚しお申請曞を提出しおください。 アプリケヌションぞのコメントぞのリンクを含めるこずを忘れないでください。



䌝統的に、ただ質問がある堎合は、コメントで質問しおください。

喜んでお答えしたす。



All Articles