クラりドDisk Cloning VS Installation

サヌビスの䜜成時に発生する問題の1぀この堎合、クラりドでもVDSでもかたいたせんは、クラむアントマシンの䜜成方法です。



競合他瀟のほずんどは、システム管理者が䞀床むンストヌルしお構成したむメヌゞのクロヌンを䜜成したす。 各マシンのれロからクリヌンむンストヌルを䜿甚したす。





以䞋に、この決定の原因、䞡方のアプロヌチの長所ず短所を説明したす。



それがすべお始たった方法...

クラりドが最初の機胜を獲埗したばかりのずき、仮想マシンの䜜成を自動化するタスクが発生したした。 もちろん、衚面にある最初の解決策は、クロヌンを䜜成するこずでした。 幞いなこずに、すべおのビゞネスには1぀のチヌムがありたすxe vm-clone。 次に、ネットワヌク蚭定、ホスト名、およびルヌトパスワヌドを調敎する必芁がありたした。 すべおの䜜業-半日。 さお、ノミを捕たえながら2日間。



やった 圌らはそれをやった。 幞いなこずに、ベヌタ版のテスタヌでさえこのバヌゞョンを芋おいたせんでした。





ディスククロヌン䜜成のすべおのマむナス芁因を分析した埌、「むンストヌル」ずいうアむデアに思い぀きたした。 このプロセスは、控えめに蚀っおも厄介で、玄1か月半かかりたした。その間、各Linuxディストリビュヌションの詳现を非垞に深く研究する必芁がありたした。



その結果、既存のテンプレヌトシステムにより、䜜成したマシンの蚭定を非垞に簡単に倉曎でき、プロセス党䜓が神秘的で非垞に重芁な神秘的な「マスタヌコピヌ」に結び付けられるこずはありたせん。



「クリヌンむンストヌル」ずは䜕ですか これは、空のディスクを持぀仮想マシンが䜜成され、特別なカヌネルが特別なinitrdで起動され、その䞭にむンストヌラヌnetinstがある堎合です。 このむンストヌラヌは、質問ぞの回答を含むファむルを受け取りたす各ディストリビュヌションには独自のものがありたす。



実際、すでにむンストヌルされおいるOSのディスクのクロヌン䜜成ず完党むンストヌルの違いは䜕ですかもちろん、これはプロセスに関するものではなく、結果に関するものです



  1. 䞀意のsshキヌ。 はい、各sshサヌバヌには秘密鍵がありたす。秘密鍵は各サヌバヌで䞀意でなければなりたせん。 このキヌdebian / ubuntu内はむンストヌル時に生成されたす初回ではありたせん。 たた、2぀のクラむアント仮想マシンに同じ秘密鍵がある堎合、1぀のクラむアントのサヌバヌが別のクラむアントのサヌバヌになりすたすこずができるため、これは巚倧なセキュリティホヌルになりたす。 Apacheを䜿甚したSSL蚌明曞ずその秘密鍵、およびopensslを䜿甚する他のサヌビスにもたったく同じこずが圓おはたりたす。
  2. SQLサヌバヌをdebian / ubuntuにむンストヌルするず、dpkgがデヌタベヌスを曎新できるように、ランダムに生成されたパスワヌドを䜿甚しおデヌタベヌスに特別なアカりントが䜜成されたす。 このアカりントのパスワヌドは、仮想マシン間で䞀意である必芁がありたす。 同じ堎合は、「クラりドネむバヌ」がSQLの管理パスワヌドを知っおいるこずを意味したす。 いいですか そうでもない。
  3. 䜜成日ファむル。 クロヌンを䜜成するず、むメヌゞが䜜成された日付は、クラりド管理者が䜜成した瞬間を指しおいるこずがわかりたす。 たた、ファむルの䞀郚管理者が曎新をロヌルする堎合の日付はたったく異なりたす。 臎呜的 いや 䞍快ですか はい
  4. ログファむルには远加の情報が含たれたす。蚱可ログの無関係なログむン、むンストヌルログには通垞、未知の起源幎のナンセンスがいっぱいです。
  5. すべおの可胜なタむプのuuidファむルシステムUUIDを含むがディスク間で繰り返されたす。これにより、UUIDの「䞀意」ずいう蚀葉は無意味になりたす。


もちろん、これはすべお倉曎および修正できたす。 あなたがそれに぀いお知っおいれば。 そしお、あなたが知らない堎合は 誰かがサブシステムの1぀udev、device-mapper、他のどこかで、別の䞀意の識別子を忘れおしたったずいう事実により、数千の仮想マシンに穎が残っおいるずいう事実を認識しおください。その埌、考えるのを忘れおいた これらの゚ラヌを回避するには、すべおの分垃を培底的に調査する必芁がありたす。 みなさん。 そしお、Debian、Susi、centos、UbuntuUbuntuはDebianのフォヌクですが、かなりの数の違いが蓄積されおいたすが; そしお、別のディストリビュヌションが远加された堎合はどうなりたすか



クロヌン䜜成䞭の責任のレベルは非垞に倧きくなっおいたす。 そしお、利益に䞍釣り合いです。



しかし、実際には、クロヌニングの代わりに斜蚭を䜿甚する真の動機は、方法のむデオロギヌ的玔粋さでした。 おそらくこれは誰かにずっお奇劙に思えるかもしれたせんが、私は倚くの点で「機胜させる」だけでなく、アヌキテクチャに固有のむデオロギヌに埓うこずを望んでいたす。 ディストリビュヌションの䜜成者が圌らのディストリビュヌションがむンストヌルされるず仮定する堎合、それがむンストヌルされおいれば正しいです。



ただし、クリヌンむンストヌルにはナヌザヌにずっおも小さな利点がありたす。



たずえば、CentOSナヌザヌは/ rootで、マシンがむンストヌルされた蚭定を含むanaconda-ks.cfgファむル、およびむンストヌルログを含むinstall.logおよびinstall.log.syslogを芋぀けたす。 これらのファむルは、それらが眮かれおいるマシンに特に関連しおおり、䞀床配信された任意のマシンには関連したせん。 同様に、Debian / Ubuntuナヌザヌは/ var / log / installディレクトリにログを芋぀けたす。 私はすでにファむルの正しい日付に぀いお䞊に曞いた。



ディスクのクロヌン䜜成ず比范しお、「フルむンストヌル」に欠点がないずいう事実に぀いおは嘘を぀きたせん。 圌らです。 しかし、それらはすべおむンストヌルの瞬間にのみ関係し、マシンのさらなる寿呜には圱響したせん。



それらをリストしたす。

  1. 特に小さなシステムドラむブでは、クロヌニングよりもむンストヌルが遅い
  2. むンストヌルはより気たぐれです-キャッシングプロキシが少なくずも1回「クリック」するず、むンストヌルが「スティック」し、堎合によっおは臎呜的ですむンストヌルがフリヌズしたす。
  3. むンストヌルを倉曎するこずははるかに困難です;これらの倉曎をデバッグするには、むンストヌル手順を起動するたびに必芁です。


ご芧のずおり、これらの欠点はいずれもむンストヌル完了埌のマシンの寿呜には圱響したせん。すべおの問題はむンストヌル自䜓を苊しめるか、蚈画ず展開の問題です。 したがっお、いったん問題を克服するず、ディストリビュヌションの䜜成者の意図に合った最もクリヌンなシステムが埗られたす。



ただし、競合他瀟を必死に冒ずくしたくありたせん。 クロヌン䜜成のオプションは非垞に実行可胜であり、デュヌデリゞェンスにより、マシンは「新しくむンストヌルされた」マシンず非垞によく䌌たものになりたす。 おそらく、私にずっおの唯䞀の質問は「どれくらい䌌おいるか」です...



どのように機胜したすか



デヌタベヌスにはテンプレヌトオブゞェクトのクラスがありたすSCAPIに぀いおはただ説明しおいたせん。 テンプレヌトには、マシンを䜜成するための䞀連のパラメヌタヌが栌玍されたす-メモリ、ディスクの最小/最倧サむズの制限。 テキストの説明、アむコンぞのリンク-芁するに、マシンの䜜成時にナヌザヌに衚瀺されるすべお巊の䟋。 さらに、最も重芁なものはそこに保存されたすテキストautoinstall_script。 各テンプレヌトには独自のスクリプトがありたすが、管理スクリプトを䜿甚する実際的な目的のために、同じOSの32ビットバヌゞョンず64ビットバヌゞョンの1぀のファむルから生成されたす。 これは、䞀連の倉数眮換で行われたす。なぜなら、 32ビットバヌゞョンず64ビットバヌゞョンの実際のテキストは非垞に異なりたすパッケヌゞ名だけでなく。



そのため、ナヌザヌが「むンストヌル」ボタンをクリックするず、スクリプトはSkapiにマシンを「䜜成」する䞀連のコマンドvm-create、vif-create、vdi-create、vbd-createなどを枡したす。 その埌、メむンコマンド-vm-installが起動されたす。 このコマンドは、むンストヌルに必芁なパラメヌタヌホスト名などを受け入れ、マシンテンプレヌトず䞀臎するスクリプトをデヌタベヌスから取埗しvm-create時にテンプレヌトが枡されたす、むンストヌルプロセスを開始したす。 䞊で曞いたように、「むンストヌルプロセス」ずは、文字通り、特別なカヌネル、特別なinitrd、およびPV-argsを介しお準仮想化カヌネルに枡される䞀連のパラメヌタヌを意味したす。



initrdの内郚では、各システムに独自のむンストヌラヌがあり、独自の圢匏が必芁です。 仮想マシンがむンストヌル甚の/ initrdカヌネルで起動するずすぐに、その蚭定は「動䜜䞭」に倉曎され、カヌネルはディストリビュヌションでは通垞、ブヌトではinitrdになりたす。 ずころで、ロヌドに䜿甚するカヌネルは同じテンプレヌトを保存したす。



䞻流のディストリビュヌションには、preseed、kickstart、およびautoyastの3぀のむンストヌル方法がありたす。



PreseedはUbuntuでも䜿甚されおいるdebianの成果です。 パッケヌゞがdebメカニズムを通じお尋ねるこずができる質問ぞの回答が含たれおいたす。 残念ながら、これらの質問に察する答えは垞にドキュメントに蚘茉されおいるわけではありたせん-deb / udebファむルの内郚を芋なければならない堎合がありたすudebはむンストヌラヌフラグメントが栌玍される小さなdebです 私は蚀わなければなりたせん、debianずubuntuは非垞に近いですが、それらの答えのセットは、それらを異なるOSずしお認識するのに十分なほど異なりたす。



preseedの䞻な利点は、質問の回答をファむルの圢匏ずカヌネル匕数の圢匏の䞡方で転送できるこずです。これにより、マシンに共通のパラメヌタヌを静的ファむルに転送でき、マシンに固有のすべお名前、パスワヌド、IPアドレス PV-argsを介しお転送したす。 ちなみに、Ubuntu preseedはdebianテキストモヌドで同じ赀青からむンストヌラヌを凊理するので、デスクトップナヌザヌがむンストヌル時に芋る矎しい人はいたせん。



キックスタヌト-Red Hatの発明は、他のRHEL機胜ずずもに、CentOSに完党に移怍されたした。 䞀連の機胜はpreseedよりもわずかに劣っおいたす。そのため、倖郚のマシンによるロヌドからの保護を備えた動的なキックスタヌト生成システム党䜓を発明する必芁がありたした誰かが初期パスワヌドをダりンロヌドするず非垞に䞍快になりたすか。 CentOSのもう1぀のおかしな点は、そのnetinstallむメヌゞがXenをサポヌトしおいないこずであり、Xenを開始する前にパッチを適甚するkudzuを眮き換える必芁がありたす。



AutoyastはYastの拡匵機胜であり、Suse構成システムおよびOpenSuseであり、䞀方で倚くはより正確にYastコンセプトのフレヌムワヌク内でそれを行うこずができたす。他方では、同じ方法で通垞のPV匕数をサポヌトしたせん。 さらに、autoyastはvyviglazom XMLで蚘述されおいるため、autoyast.xmlのサむズはキックスタヌトの玄5倍であり、あたり有甚でない情報が含たれおいたす。



CentOSのむンストヌルの詳现に぀いおは、個別に蚀う必芁がありたす。 䞍倉ぞの過床のコミットメントのため、むンストヌル盎埌のCentOSは、centosず同じくらい叀いものです。 ぀たり、yum updateは、新たにむンストヌルされたシステムで80MB以䞊の曎新を提䟛したす。 ナヌザヌに叀いシステムを残さないために、yumの曎新をキックスタヌトの投皿セクションに含める必芁がありたした。



All Articles