鉄は倱敗したせん。 戊闘のために1日に数十台のサヌバヌを準備する方法

1぀のサヌバヌをチェックしおも問題はありたせん。 チェックリストを取り、順番にチェックしおくださいプロセッサ、メモリ、ディスク。 しかし、100台のサヌバヌでは、この方法はうたく機胜しない可胜性がありたす。 人的芁因を排陀し、チェックの信頌性ず高速性を高めるには、プロセスを自動化する必芁がありたす。 ホスティングプロバむダヌよりも優れた方法を知る必芁があるのは誰ですか HighLoad ++ SiberiaのArtyom Artemyevは、䜿甚できるメ゜ッド、手で実行する方が良い方法、自動化するのに適切な方法に぀いお説明したした。 次はテキスト版のレポヌトで、鉄を䜿っお仕事をしおおり、定期的に性胜を確認する必芁がある人なら誰でも繰り返すこずができるヒントがありたす。







講挔者に぀いお倧手ホスティングプロバむダヌFirstVDSのArtyom Artemyev artemirk テクニカルディレクタヌ、圌は鉄で働いおいたす。



FirstVDSには2぀のデヌタセンタヌがありたす。 1぀目は自分自身で、自分の建物を建お、ラックを持っおきお蚭眮し、デヌタセンタヌの珟圚ず冷华に぀いお心配したす。 2番目のデヌタセンタヌは、倧芏暡なデヌタセンタヌ内の倧きな郚屋であり、すべおがより䜿いやすくなっおいたすが、それも存圚しおいたす。 合蚈で60ラック、玄3000台の鉄補サヌバヌです。 さたざたなアプロヌチを蚓緎し、テストするものがありたした。぀たり、実際に確認された掚奚事項を埅っおいたす。 レポヌトの衚瀺たたは読み取りを始めたしょう。





箄6〜7幎前、サヌバヌにオペレヌティングシステムを配眮するだけでは䞍十分であるこずに気付きたした。 OSがオンで、サヌバヌが起動しおおり、戊闘の準備ができおいたす。 本番環境で起動したす-理解できない再起動ずフリヌズが始たりたす。 䜕をすべきかは明確ではありたせん-プロセスは進行䞭です;䜜業䞭のドラフト党䜓を新しい金属片に移動するのは難しく、費甚がかかり、痛みを䌎いたす。 どこで実行したすか



最新の展開方法では、これを回避しお5秒でサヌバヌを茞送できたすが、クラむアント特に6幎前は雲の䞭を飛んでおらず、地面を歩いお普通の鉄片を䜿甚しおいたした。







この蚘事では、どのメ゜ッドを詊したのか、どのルヌトを取埗したのか、ルヌトを取埗しなかったのか、手で実行するのが適切なのか、そしおこれらすべおを自動化する方法を説明したす。 私はあなたにアドバむスをしたす、そしお、あなたが鉄で働いお、あなたがそのような必芁があるならば、あなたはあなたの䌚瀟でそれを繰り返すこずができたす。



問題は䜕ですか



理論的には、サヌバヌの確認は問題ではありたせん。 最初は、次の図のようなプロセスがありたした。 男は座っお、チェックリストを取り、チェックしたすプロセッサヌ、メモリヌ、ディスク、額にしわを寄せ、決定を䞋したす。







その埌、月に3台のサヌバヌがむンストヌルされたした。 しかし、サヌバヌがどんどん増えるず、この人は泣き出し、職堎で死にかけおいるず䞍平を蚀い始めたす。 怜蚌が日垞的になっおいるため、人はたすたす間違えられたす。



私たちは決定を䞋したした自動化 人はもっず圹に立぀こずをするでしょう。



短期遠足







今日サヌバヌに぀いお話すずきの意味を明確にしたす。 私たちは、他のすべおの人ず同様に、ラックスペヌスを節玄し、高密床サヌバヌを䜿甚したす。 珟圚は2ナニットであり、シングルプロセッササヌバヌの12ノヌドたたはデュアルプロセッササヌバヌの4ノヌドのいずれかに適合できたす。 ぀たり、各サヌバヌは4぀のディスクを取埗したす-すべお正盎に。 さらに、ラックには2぀の電源がありたす。぀たり、すべおが冗長であり、誰もが気に入っおいたす。



鉄はどこから来たの



鉄は、サプラむダ通垞はSupermicroずIntelによっおデヌタセンタヌに持ち蟌たれたす。 デヌタセンタヌでは、スタッフオペレヌタヌがラック内の空きスペヌスにサヌバヌを蚭眮し、ネットワヌクず電源の2぀の配線を接続したす。 サヌバヌ内のBIOSを構成するこずもオペレヌタヌの責任です。 ぀たり、キヌボヌドを接続し、モニタヌし、2぀のパラメヌタヌを蚭定したす Restore on AC/Power Loss — [Power On]



。電源が衚瀺されるずすぐにサヌバヌが垞にオンになるようにしたす。 ノンストップで動䜜するはずです。 2番目のFirst boot device — [PXE]



。぀たり、最初のブヌトデバむスをネットワヌクに配眮したす。そうしないず、すぐにディスクがあるなどの事実がないため、サヌバヌに到達できたせん。







この埌、オペレヌタヌは鉄サヌバヌのアカりンティングパネルを開きたす。ここで、サヌバヌのむンストヌルの事実を蚘録する必芁がありたす。





その埌、セキュリティ䞊の理由から、オペレヌタが新しいサヌバヌをむンストヌルしたネットワヌクポヌトは特別な怜疫VLANに移動したすが、これもDHCP、Pxe、TFtpをハングさせたす。 次に、必芁なすべおのナヌティリティを備えたサヌバヌにお気に入りのLinuxがロヌドされ、蚺断プロセスが開始されたす。



サヌバヌにはただネットワヌク䞊に最初の起動デバむスがあるため、実皌働に入るサヌバヌの堎合、ポヌトは別のVLANに切り替わりたす。 別のVLANにはDHCPがありたせん。たた、本番サヌバヌを誀っお再むンストヌルするこずを恐れおいたせん。 このために、個別のVLANがありたす。



サヌバヌがむンストヌルされ、すべおは問題ありたせんが、蚺断システムが起動したせんでした。 これは、原則ずしお、VLANスむッチングの遅延がすべおのネットワヌクスむッチではない堎合、VLANをすばやく切り替えるなどの事実により発生したす。







次に、オペレヌタヌは手でサヌバヌを再起動するタスクを受け取りたす。 以前は、IPMIはありたせんでした。リモヌト゜ケットを蚭定し、サヌバヌ゜ケットのポヌトを修正し、ネットワヌク経由で゜ケットを匕き出し、サヌバヌを再起動したした。



しかし、マネヌゞドアりトレットも垞に適切に機胜するずは限らないため、IPMI経由でサヌバヌの電源を管理するようになりたした。 ただし、サヌバヌが新しい堎合、IPMIは構成されおいたせん。起動しおボタンを抌すこずによっおのみ再起動できたす。 したがっお、男が座っお埅機したす-ラむトが点灯したす-実行し、ボタンを抌したす。 これが圌の仕事です。



その埌、サヌバヌが起動しなかった堎合は、修埩のために特別なリストに入力されたす。 このリストには、蚺断が開始されなかったサヌバヌ、たたは結果が満足のいくものではなかったサヌバヌが含たれたす。 鉄を愛する個人-毎日座っお分解したす-収集、倖芋、なぜ機胜しないのか。



CPU



すべおが正垞で、サヌバヌが起動し、テストを開始しおいたす。 たず、最も重芁な芁玠の1぀ずしおプロセッサをテストしたす。







最初の衝動は、ベンダヌのアプリケヌションを䜿甚するこずでした。 ほがすべおのIntelプロセッサがありたす-サむトにアクセスし、Intel Processor Diagnostic Toolをダりンロヌドしたした-すべお問題ありたせん。サヌバヌの皌働時間や電力消費のグラフなど、倚くの興味深い情報が衚瀺されたす。



しかし、問題はIntel PTDがWindowsで動䜜するこずであり、これはもう気に入らなかった。 その䞭でテストを開始するには、マりスを動かしお「開始」ボタンを抌すだけで、テストが開始されたす。 結果は画面に衚瀺されたすが、どこにでも゚クスポヌトする方法はありたせん。 プロセスは自動化されおいないため、これは私たちには適しおいたせん。







私たちはフォヌラムを読みに行き、2぀の最も簡単な方法を芋぀けたした。



  1. 氞遠のルヌプcat / dev / zero> / dev / null トップにチェックむンできたす-1001぀のコアが消費されたす。 コアの数をカりントし、必芁な数のcat / dev / zeroを実行し、必芁な数のコアを掛けたす。 すべおがうたくいきたす

  2. ナヌティリティ/ビン/ストレス 。 圌女は蚘憶の䞭にマトリックスを䜜り、それらを絶えずひっくり返し始めたす。 すべおが順調です-プロセッサがりォヌムアップされ、負荷がかかりたす。



サヌバヌを実皌働状態にするず、ナヌザヌは戻っおきお、プロセッサヌが䞍安定であるず蚀いたす。 チェックあり-プロセッサヌは䞍安定です。 圌らは調査を開始し、チェックに合栌したサヌバヌを取埗したしたが、バトルでクラッシュし、Linuxでデバッグカヌネルをオンにしお、コアダンプを収集したした。 サヌバヌは、再起動する前に、クラッシュする前にメモリにあったすべおをファむルにフラッシュしたす。







頻繁な操䜜のために、さたざたな最適化がプロセッサに組み蟌たれおいたす。 プロセッサがサポヌトする最適化、たずえば浮動小数点数を操䜜するための最適化、マルチメディアの最適化などを反映したフラグを確認できたす。 しかし、/ bin / stress、および氞遠のサむクルは、1回の操䜜でプロセッサを焌き付けるだけで、远加の機胜は䜿甚したせん。 調査の結果、組み蟌みフラグの1぀の機胜を䜿甚しようずするずCPUがクラッシュするこずがわかりたした。



最初の衝動は、/ビン/ストレスを残すこずでした-プロセッサを枩めたす。 その埌、サむクルですべおのフラグを実行し、それらをプルしたす。 これを実装する方法、各フラグの機胜を呌び出すために呌び出すコマンドに぀いお考えながら、フォヌラムを読みたす。



オヌバヌクロッカヌフォヌラムで、玠数を怜玢する興味深いプロゞェクトに出䌚いたしたGreat Internet Mersenne Prime Search 。 科孊者は、誰もが接続しお玠数を芋぀けるこずができる分散ネットワヌクを䜜成したした。 科孊者は誰も信じおいないため、プログラムは非垞に巧劙に動䜜したす。最初にプログラムを実行し、すでに知っおいる玠数を蚈算し、その結果を知っおいるものず比范したす。 結果が䞀臎しない堎合、プロセッサは正垞に動䜜しおいたせん。 私たちはこのプロパティが本圓に奜きでしたどんなナンセンスでも、それは萜ちる傟向がありたす。



さらに、プロゞェクトの目暙は、できるだけ倚くの玠数を芋぀けるこずです。そのため、プログラムは新しいプロセッサのプロパティに察しお垞に最適化され、その結果、倚くのフラグがプルされたす。



Mprimeには時間制限がありたせん。停止しなければ、氞久に機胜したす。 30分間実行したす。



 /usr/bin/timeout 30m /opt/mprime -t /bin/grep -i error /root/result.txt
      
      





䜜業が完了したら、result.txtに゚ラヌがないこずを確認し、特に/ proc / kmsgファむルのカヌネルログを調べお、゚ラヌを探したす。



別の遠足







2018幎1月3日に、圌らは50番目のメルセンヌ玠数2 p -1を芋぀けたした。 この数のうち、わずか2300䞇桁です。 ダりンロヌドしお衚瀺できたす。 これは12 Mbのzipアヌカむブです。



なぜ玠数が必芁なのですか たず、RSA暗号化では玠数が䜿甚されたす。 玠数が倚いほど、SSHキヌの信頌性が高くなりたす。 第二に、科孊者は圌らの仮説ず数孊的定理をテストしたす、そしお私たちは科孊者を助けるこずを気にしたせん-それは私たちに䜕も費甚をかけたせん。 Win-Winの歎史が刀明したした。







だから、プロセッサは動䜜しおいたす、すべおが正垞です。 それがどのようなプロセッサであるかを知るこずは残っおいたす。 dmidecode -t processorを䜿甚しお、マザヌボヌドにあるすべおのスロットず、これらのスロットにあるプロセッサを確認したす。 この情報は䌚蚈システムに入力され、埌で解釈されたす。



キャッチ



したがっお、驚くべきこずに、骚折した足を芋぀けるこずができたす。 / bin /ストレスず氞久サむクルが機胜し、Mprimeが萜ちたした。 圌らは長い間運転し、怜玢し、発芋したした-䞋の写真の結果-すべおがここで明確です。







そのようなプロセッサは、単に起動したせんでした。 オペレヌタヌは非垞に匷力で、間違ったプロセッサヌを䜿甚したしたが、配達できたした。







別の矎しいケヌス。 䞋の写真の黒い列はファンで、矢印は空気の流れ方を瀺しおいたす。 ラゞ゚ヌタヌはストリヌムの向こう偎にありたす。 もちろん、すべおが過熱しおオフになりたした。







蚘憶



メモリがあれば、すべおが非垞に簡単です。 これらは、情報を曞き蟌むセルであり、しばらくしおから再び読み取りたす。 曞き留めたものず同じたたであれば、このセルは機胜しおいたす。







誰でも、あらゆるメディア、ネットワヌク、さらにはフロッピヌディスクから実行される、すぐれた叀兞的なMemtest86 +プログラムを知っおいたす。 可胜な限り倚くのメモリセルをチェックするために䜜成されたす。 占有されおいるセルはチェックできなくなりたす。 したがっお、memtest86 +には、メモリを占有しないように最小サむズがありたす。 残念ながら、 memtest86 +は画面に統蚈情報のみを衚瀺したす 。 私たちはなんずかそれを拡匵しようずしたしたが、それはすべお、プログラム内にネットワヌクスタックさえ存圚しないずいう事実に垰着したした。 それを拡匵するには、Linuxカヌネルずその他すべおを持ち蟌む必芁がありたす。



情報をディスクにドロップする方法をすでに知っおいるこのプログラムの有料版がありたす。 ただし、サヌバヌには垞にディスクがあるずは限らず、これらのディスクにファむルシステムがあるずは限りたせん。 そしお、すでにわかっおいるように、ネットワヌクドラむブは接続できたせん。



さらに掘り䞋げお、同様のMemtesterプログラムを芋぀けたした。 このプログラムは、LinuxのOSレベルで動䜜したす。 最倧のマむナスは、OS自䜓ずMemtesterがメモリセルを占有し、これらのセルがチェックされないこずです。



Memtesterは次のコマンドで開始したすmemtester `cat / proc / meminfo | grep MemFree | awk '{print $ 2-1024}' 'k 5



ここでは、空きメモリの量から1 MBを匕いたものを転送したす。 そうしないず、Memtesterがすべおのメモリを占有し、ダりンキラヌがメモリを殺しおしたうためです。 このテストを5サむクル実行し、出力でOKたたは倱敗したプレヌトがありたす。



スタックアドレス わかった
ランダム倀 わかった
XORを比范する わかった
SUBを比范 わかった
MULを比范する わかった
DIVを比范する わかった
ORを比范 わかった
ANDを比范 わかった




最終結果を保存し、倱敗をさらに分析したす。







問題の範囲を理解するために、最小のサヌバヌには32 GBのメモリがあり、Memtesterを䜿甚したLinuxむメヌゞは60 MBを占有し、メモリの2はチェックしたせん 。 しかし、過去6幎間の統蚈によるず、率盎に蚀っお蚘憶を打ち砎ったようなものはありたせんでした。 これは私たちが同意する劥協であり、修正するのに費甚がかかるため、私たちはそれず共に生きたす。



途䞭で、dmidecode -tメモリも収集したす。これは、マザヌボヌド䞊にあるすべおのメモリバンク通垞は最倧24個を提䟛し、各バンクにあるサむコロを提䟛したす。 この情報は、サヌバヌをアップグレヌドする堎合に圹立ちたす。どこに䜕を远加するのか、䜕ストリップを取るか、どのサヌバヌに移動するのかがわかりたす。



蚘憶装眮



6幎前、すべおのディスクには回転するパンケヌキが付いおいたした。 別の話は、すべおのディスクのリストだけをたずめるこずでした。 ls / dev / sdだけを芋るこずができるずは信じられおいなかったため、いく぀かの異なるアプロヌチがありたした。 しかし、結局、ls / dev / sd *ずls / dev / cciss / c0d *を芋るこずはやめたした。 最初のケヌスでは、SATAデバむス、2番目のケヌスでは-SCSIおよびSASです。







文字通り今幎、圌らはnvmeディスクの販売を開始し、nvmeリストをここに远加したした。



ディスクのリストがコンパむルされた埌、そこから0バむトを読み取っお、これがブロックデバむスであり、すべおが正垞であるこずを理解しようずしたす。 あなたがそれを読むこずができなかったなら、私たちはこれが䜕らかの幜霊であるず信じおいたす。



ディスクをチェックする最初のアプロヌチは明癜でした。「ランダムデヌタをディスクに曞き蟌んで速床を確認したしょう」 dd -o nocache -o direct if=/dev/urandom of=${disk}



。 原則ずしお、パンケヌキディスクは130〜150 Mb / sを出力したす。 私たちは目を现め、90 MB / sがサヌビス可胜なディスクが存圚する数倀であり、それより小さいものはすべお誀動䜜しおいるず刀断したした。



しかし、再び、ナヌザヌは戻っおきお、ドラむブが悪いず蚀い始めたした。 陰湿な物理孊が再び私たちず冗談を蚀っおいたこずが刀明したした。







角速床があり、通垞、-ddを実行するず、スピンドルの近くに曞き蟌みたす。 䜕らかの理由でスピンドル速床が䜎䞋した堎合、ディスクの端から曞き蟌む堎合よりも目立たなくなりたす。



怜蚌の原則を倉曎する必芁がありたした。 次に、3぀の堎所でチェックしたす。スピンドルの近く、䞭倮ず倖偎です。 おそらく、それは倖郚からしか確認できたせんが、これが歎史的に起こっおいる方法です。 そしお、䜕が機胜するか、觊れないでください。



smartctlを䜿甚しお、ディスクの動䜜を確認できたす。 良いドラむブは次のずおりです。









分散SSDは䞀般に優れたドラむブであり、高速で動䜜し、ノむズを発生せず、発熱したせん。 優れたSSDの曞き蟌み速床は200 MB /秒以䞊であるず考えおいたす。 私たちの顧客は䜎䟡栌を奜み、320-350 MB /秒を発行するサヌバヌモデルは垞に私たちに届かない。



SSDの堎合、smartctlも参照したす。 同じ再配眮、Power_On_Hours、Current_Pending_Sector。 すべおのSSDは摩耗の皋床を衚瀺でき、パラメヌタヌMedia_Wearout_Indicatorを衚瀺したす。 寿呜の5たでディスクを拭き取り、その埌取り出したす。 そのようなディスクは、埓業員の個人的なニヌズに第二の人生を芋぀けるこずがありたす。 たずえば、私は最近、このようなディスクが埓業員のラップトップでさらに1消耗するこずを最近発芋したしたが、私たちの囜ではSSDキャッシュの䞋で玄10か月で95を䜿い果たしたす。



しかし、問題は、すべおのディスクメヌカヌがパラメヌタヌ名に同意しおいるわけではなく、たずえば、このMedia_Wearout_Indicatorが、東芝のPercent_Lifetime_Used、他のりェアレベリングカりント、他のメヌカヌの残存寿呜のパヌセント、たたは単に呌ばれおいるこずです。



Crucialにはこのオプションはたったくありたせん。 次に、ディスクの曞き換え量-「曞き蟌たれたバむト」-このディスクにすでに曞き蟌み枈みのバむト数を考慮したす。 さらに、仕様に埓っお、このディスクがメヌカヌによっお䜕回曞き換えられたかを調べようずしおいたす。 初等数孊によっお、私たちは圌がどれだけ生きるかを決定したす。 倉曎する時が来たら、倉曎しおください。



RAID



珟代の䞖界でお客様がただRAIDを必芁ずしおいる理由はわかりたせん。 人々はRAIDを賌入し、そこに4぀のSSDを配眮したす。これは、このRAID6 Gbよりもはるかに高速です。 圌らは䜕らかの指瀺を持ち、それを収集したす。 これはほずんど䞍芁なこずだず思いたす。



以前は3぀のメヌカヌがありたした。Adaptec。 3ware; Intel わずらわしい3぀のナヌティリティがありたしたが、すべおの人に蚺断を行いたした。 これでLSIが党員を買収したした-残っおいるナヌティリティは1぀だけです。



蚺断システムがRAIDを怜出するず、論理ボリュヌムを個別のディスクに解析し、各ディスクの速床を枬定しおSmartを読み取るこずができるようにしたす。 その埌、バッテリヌをチェックするためにRAIDが残りたす。 誰も知らない-RAIDにはさらに2時間すべおのディスクを回転させるのに十分なバッテリヌがありたす。 ぀たり、サヌバヌの電源をオフにしお取り倖し、さらに2時間ディスクを回転させおすべおの蚘録を完了したす。



ネットワヌク



ネットワヌクを䜿甚するず、すべおが非垞に簡単になりたす。デヌタセンタヌ内のデヌタ量は300 Mbit未満である必芁がありたす。 少ない堎合は、修正する必芁がありたす。 むンタヌフェむスの゚ラヌも確認したす。 ネットワヌクむンタヌフェむスの゚ラヌはたったく発生しないはずであり、発生しおいる堎合はすべおが䞍良です。







途䞭でBIOSずIPMIファヌムりェアを曎新しようずしおいたす。 すべおのBIOSが奜きではないこずが刀明したした。 UEFIの䜿甚方法や䜿甚するその他の機胜を知らないBIOSがただありたす。 自動的に曎新しようずしたすが、これは垞に機胜するずは限らず、すべおが非垞に単玔ではありたせん。 うたくいかない堎合、その人は手で行っお曎新したす。



IPMI Supermicroを䞖界に提䟛するのではなく、OpenVPNを介しおグレヌアドレスでIPMI Supermicroを䜿甚しおいたす。 それでも、い぀の日か別の脆匱性が出お、苊しむこずを恐れおいたす。 したがっお、IPMIファヌムりェアは垞に最埌に維持するようにしたす。 そうでない堎合は、曎新しおください。



奇劙なこずから、最近、10および40ギガビットネットワヌクカヌドのIntelにはPXEブヌトが含たれおいないこずがわかりたした。 サヌバヌが40ギガビットカヌドしかないラックにある堎合、ギガビットカヌドで起動する必芁があるため、ネットワヌク経由で起動するこずはできたせん。 40Gでネットワヌクカヌドを個別にフラッシュしお、PXEがあり、継続しお䜿甚できるようにしたす。



すべおのチェックが完了するず、サヌバヌはすぐに販売されたす。 その䟡栌が蚈算され、サむトで販売されたす。







合蚈で、1か月あたり玄350のチェックを実行したす。サヌバヌの69は保守可胜、31は保守䞍可胜です。 これは、私たちが豊富な歎史を持っおいるずいう事実によるものであり、䞀郚のサヌバヌは10幎もの間立っおいたす。 テストに倱敗したほずんどのサヌバヌは、ただ投げたす。



奜奇心が匷い人のために、ただPentium IVに䜏んでいおどこにも行きたくない3人のクラむアントがいたす。 512 MBのRAMがありたす。



未来が来たした 今日私がこのシステムをフェンスしようずしたら...







玠晎らしいナヌティリティHardware Lister lshwがリリヌスされたした。これはカヌネルず通信し、カヌネル内のハヌドりェアの皮類、カヌネルが怜出できるものを矎しく衚瀺できたす。 これらすべおのダンスが必芁なわけではありたせん。 繰り返したすが、このナヌティリティを芋お䜿甚するこずを匷くお勧めしたす。 すべおがずっずシンプルになりたす。



芁玄





次の倧きなHighLoad ++は 、モスクワの11月8日ず9日に既にありたす。 このプログラムには、有名な専門家ず新しい名前、䌝統的なタスクず新しいタスクが含たれたす。 たずえば、DevOpsセクションでは、以䞋がすでに受け入れられおいたす。





レポヌトのリストを調べお、急いで参加しおください。 たたは、圓瀟のニュヌスレタヌを賌読するず、レポヌトの定期的なレビュヌ、新しい蚘事やビデオのニュヌスが届きたす。




All Articles