Track2Agenda: ex-ganeti-failure-scenarios.htm

File ex-ganeti-failure-scenarios.htm, 34.6 KB (added by trac, 3 years ago)
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5  <meta http-equiv="Content-Style-Type" content="text/css" />
6  <meta name="generator" content="pandoc" />
7  <title>Ganeti: failures and recovery scenarios</title>
8  <style type="text/css">code{white-space: pre;}</style>
9  <link href="data:text/css,%2F%2A%0A%20%20%20%20Buttondown%0A%20%20%20%20A%20Markdown%2FMultiMarkdown%2FPandoc%20HTML%20output%20CSS%20stylesheet%0A%20%20%20%20Author%3A%20Ryan%20Gray%0A%20%20%20%20Date%3A%2015%20Feb%202011%0A%20%20%20%20Revised%3A%2021%20Feb%202012%0A%20%20%20%0A%20%20%20%20General%20style%20is%20clean%2C%20with%20minimal%20re%2Ddefinition%20of%20the%20defaults%20or%20%0A%20%20%20%20overrides%20of%20user%20font%20settings%2E%20The%20body%20text%20and%20header%20styles%20are%20%0A%20%20%20%20left%20alone%20except%20title%2C%20author%20and%20date%20classes%20are%20centered%2E%20A%20Pandoc%20TOC%20%0A%20%20%20%20is%20not%20printed%2C%20URLs%20are%20printed%20after%20hyperlinks%20in%20parentheses%2E%20%0A%20%20%20%20Block%20quotes%20are%20italicized%2E%20Tables%20are%20lightly%20styled%20with%20lines%20above%20%0A%20%20%20%20and%20below%20the%20table%20and%20below%20the%20header%20with%20a%20boldface%20header%2E%20Code%20%0A%20%20%20%20blocks%20are%20line%20wrapped%2E%20%0A%20%0A%20%20%20%20All%20elements%20that%20Pandoc%20and%20MultiMarkdown%20use%20should%20be%20listed%20here%2C%20even%20%0A%20%20%20%20if%20the%20style%20is%20empty%20so%20you%20can%20easily%20add%20styling%20to%20anything%2E%0A%20%20%20%20%0A%20%20%20%20There%20are%20some%20elements%20in%20here%20for%20HTML5%20output%20of%20Pandoc%2C%20but%20I%20have%20not%20%0A%20%20%20%20gotten%20around%20to%20testing%20that%20yet%2E%0A%2A%2F%0A%20%0A%2F%2A%20NOTES%3A%0A%20%0A%20%20%20%20Stuff%20tried%20and%20failed%3A%0A%20%20%20%20%0A%20%20%20%20It%20seems%20that%20specifying%20font%2Dfamily%3Aserif%20in%20Safari%20will%20always%20use%20%0A%20%20%20%20Times%20New%20Roman%20rather%20than%20the%20user%27s%20preferences%20setting%2E%0A%20%20%20%20%0A%20%20%20%20Making%20the%20font%20size%20different%20or%20a%20fixed%20value%20for%20print%20in%20case%20the%20screen%20%0A%20%20%20%20font%20size%20is%20making%20the%20print%20font%20too%20big%3A%20Making%20font%2Dsize%20different%20for%20%0A%20%20%20%20print%20than%20for%20screen%20causes%20horizontal%20lines%20to%20disappear%20in%20math%20when%20using%20%0A%20%20%20%20MathJax%20under%20Safari%2E%0A%2A%2F%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Front%20Matter%20%2D%2D%2D%2D%20%2A%2F%0A%20%0A%2F%2A%20Pandoc%20header%20DIV%2E%20Contains%20%2Etitle%2C%20%2Eauthor%20and%20%2Edate%2E%20Comes%20before%20div%23TOC%2E%20%0A%20%20%20Only%20appears%20if%20one%20of%20those%20three%20are%20in%20the%20document%2E%0A%2A%2F%0A%20%0Adiv%23header%2C%20header%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Put%20border%20on%20bottom%2E%20Separates%20it%20from%20TOC%20or%20body%20that%20comes%20after%20it%2E%20%2A%2F%0A%20%20%20%20border%2Dbottom%3A%201px%20solid%20%23aaa%3B%0A%20%20%20%20margin%2Dbottom%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0A%2Etitle%20%2F%2A%20Pandoc%20title%20header%20%28h1%2Etitle%29%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20%7D%0A%20%0A%2Eauthor%2C%20%2Edate%20%2F%2A%20Pandoc%20author%28s%29%20and%20date%20headers%20%28h2%2Eauthor%20and%20h3%2Edate%29%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20Pandoc%20table%20of%20contents%20DIV%20when%20using%20the%20%2D%2Dtoc%20option%2E%0A%20%20%20NOTE%3A%20this%20doesn%27t%20support%20Pandoc%27s%20%2D%2Did%2Dprefix%20option%20for%20%23TOC%20and%20%23header%2E%20%0A%20%20%20Probably%20would%20need%20to%20use%20div%5Bid%24%3D%27TOC%27%5D%20and%20div%5Bid%24%3D%27header%27%5D%20as%20selectors%2E%0A%2A%2F%0A%20%0Adiv%23TOC%2C%20nav%23TOC%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Put%20border%20on%20bottom%20to%20separate%20it%20from%20body%2E%20%2A%2F%0A%20%20%20%20border%2Dbottom%3A%201px%20solid%20%23aaa%3B%0A%20%20%20%20margin%2Dbottom%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20div%23TOC%2C%20nav%23TOC%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20Don%27t%20display%20TOC%20in%20print%20%2A%2F%0A%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Headers%20and%20sections%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Ah1%2C%20h2%2C%20h3%2C%20h4%2C%20h5%2C%20h6%0A%7B%0A%20%20%20%20font%2Dfamily%3A%20%22Helvetica%20Neue%22%2C%20Helvetica%2C%20%22Liberation%20Sans%22%2C%20Calibri%2C%20Arial%2C%20sans%2Dserif%3B%20%2F%2A%20Sans%2Dserif%20headers%20%2A%2F%0A%20%0A%20%20%20%20%2F%2A%20font%2Dfamily%3A%20%22Liberation%20Serif%22%2C%20%22Georgia%22%2C%20%22Times%20New%20Roman%22%2C%20serif%3B%20%2F%2A%20Serif%20headers%20%2A%2F%0A%20%0A%20%20%20%20page%2Dbreak%2Dafter%3A%20avoid%3B%20%2F%2A%20Firefox%2C%20Chrome%2C%20and%20Safari%20do%20not%20support%20the%20property%20value%20%22avoid%22%20%2A%2F%0A%7D%0A%20%0A%2F%2A%20Pandoc%20with%20%2D%2Dsection%2Ddivs%20option%20%2A%2F%0A%20%0Adiv%20div%2C%20section%20section%20%2F%2A%20Nested%20sections%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20margin%2Dleft%3A%202em%3B%20%2F%2A%20This%20will%20increasingly%20indent%20nested%20header%20sections%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Ap%20%7B%7D%0A%20%0Ablockquote%0A%20%20%20%20%7B%20%0A%20%20%20%20font%2Dstyle%3A%20italic%3B%0A%20%20%20%20%7D%0A%20%0Ali%20%2F%2A%20All%20list%20items%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Ali%20%3E%20p%20%2F%2A%20Loosely%20spaced%20list%20item%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20margin%2Dtop%3A%201em%3B%20%2F%2A%20IE%3A%20lack%20of%20space%20above%20a%20%3Cli%3E%20when%20the%20item%20is%20inside%20a%20%3Cp%3E%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Aul%20%2F%2A%20Whole%20unordered%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Aul%20li%20%2F%2A%20Unordered%20list%20item%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Aol%20%2F%2A%20Whole%20ordered%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Aol%20li%20%2F%2A%20Ordered%20list%20item%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Ahr%20%7B%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Some%20span%20elements%20%2D%2D%2D%20%2A%2F%0A%20%0Asub%20%2F%2A%20Subscripts%2E%20Pandoc%3A%20H%7E2%7EO%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Asup%20%2F%2A%20Superscripts%2E%20Pandoc%3A%20The%202%5End%5E%20try%2E%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Aem%20%2F%2A%20Emphasis%2E%20Markdown%3A%20%2Aemphasis%2A%20or%20%5Femphasis%5F%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Aem%20%3E%20em%20%2F%2A%20Emphasis%20within%20emphasis%3A%20%2AThis%20is%20all%20%2Aemphasized%2A%20except%20that%2A%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20font%2Dstyle%3A%20normal%3B%0A%20%20%20%20%7D%0A%20%0Astrong%20%2F%2A%20Markdown%20%2A%2Astrong%2A%2A%20or%20%5F%5Fstrong%5F%5F%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Links%20%28anchors%29%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aa%20%2F%2A%20All%20links%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Keep%20links%20clean%2E%20On%20screen%2C%20they%20are%20colored%3B%20in%20print%2C%20they%20do%20nothing%20anyway%2E%20%2A%2F%0A%20%20%20%20text%2Ddecoration%3A%20none%3B%0A%20%20%20%20%7D%0A%20%0A%40media%20screen%0A%20%20%20%20%7B%0A%20%20%20%20a%3Ahover%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20On%20hover%2C%20we%20indicate%20a%20bit%20more%20that%20it%20is%20a%20link%2E%20%2A%2F%0A%20%20%20%20%20%20%20%20text%2Ddecoration%3A%20underline%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20a%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20In%20print%2C%20a%20colored%20link%20is%20useless%2C%20so%20un%2Dstyle%20it%2E%20%2A%2F%0A%20%20%20%20%20%20%20%20color%3A%20black%3B%0A%20%20%20%20%20%20%20%20background%3A%20transparent%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20a%5Bhref%5E%3D%22http%3A%2F%2F%22%5D%3Aafter%2C%20a%5Bhref%5E%3D%22https%3A%2F%2F%22%5D%3Aafter%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20However%2C%20links%20that%20go%20somewhere%20else%2C%20might%20be%20useful%20to%20the%20reader%2C%0A%20%20%20%20%20%20%20%20%20%20%20so%20for%20http%20and%20https%20links%2C%20print%20the%20URL%20after%20what%20was%20the%20link%20%0A%20%20%20%20%20%20%20%20%20%20%20text%20in%20parens%0A%20%20%20%20%20%20%20%20%2A%2F%0A%20%20%20%20%20%20%20%20content%3A%20%22%20%28%22%20attr%28href%29%20%22%29%20%22%3B%0A%20%20%20%20%20%20%20%20font%2Dsize%3A%2090%25%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Images%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aimg%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Let%20it%20be%20inline%20left%2Fright%20where%20it%20wants%20to%20be%2C%20but%20verticality%20make%20%0A%20%20%20%20%20%20%20it%20in%20the%20middle%20to%20look%20nicer%2C%20but%20opinions%20differ%2C%20and%20if%20in%20a%20multi%2Dline%20%0A%20%20%20%20%20%20%20paragraph%2C%20it%20might%20not%20be%20so%20great%2E%20%0A%20%20%20%20%2A%2F%0A%20%20%20%20vertical%2Dalign%3A%20middle%3B%0A%20%20%20%20%7D%0A%20%0Adiv%2Efigure%20%2F%2A%20Pandoc%20figure%2Dstyle%20image%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Center%20the%20image%20and%20caption%20%2A%2F%0A%20%20%20%20margin%2Dleft%3A%20auto%3B%0A%20%20%20%20margin%2Dright%3A%20auto%3B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20font%2Dstyle%3A%20italic%3B%0A%20%20%20%20%7D%0A%20%0Ap%2Ecaption%20%2F%2A%20Pandoc%20figure%2Dstyle%20caption%20within%20div%2Efigure%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Inherits%20div%2Efigure%20props%20by%20default%20%2A%2F%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Code%20blocks%20and%20spans%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Apre%2C%20code%20%0A%20%20%20%20%7B%0A%20%20%20%20background%2Dcolor%3A%20%23fdf7ee%3B%0A%20%20%20%20%2F%2A%20BEGIN%20word%20wrap%20%2A%2F%0A%20%20%20%20%2F%2A%20Need%20all%20the%20following%20to%20word%20wrap%20instead%20of%20scroll%20box%20%2A%2F%0A%20%20%20%20%2F%2A%20This%20will%20override%20the%20overflow%3Aauto%20if%20present%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20pre%2Dwrap%3B%20%2F%2A%20css%2D3%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20%2Dmoz%2Dpre%2Dwrap%20%21important%3B%20%2F%2A%20Mozilla%2C%20since%201999%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20%2Dpre%2Dwrap%3B%20%2F%2A%20Opera%204%2D6%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20%2Do%2Dpre%2Dwrap%3B%20%2F%2A%20Opera%207%20%2A%2F%0A%20%20%20%20word%2Dwrap%3A%20break%2Dword%3B%20%2F%2A%20Internet%20Explorer%205%2E5%2B%20%2A%2F%0A%20%20%20%20%2F%2A%20END%20word%20wrap%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Apre%20%2F%2A%20Code%20blocks%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Distinguish%20pre%20blocks%20from%20other%20text%20by%20more%20than%20the%20font%20with%20a%20background%20tint%2E%20%2A%2F%0A%20%20%20%20padding%3A%200%2E5em%3B%20%2F%2A%20Since%20we%20have%20a%20background%20color%20%2A%2F%0A%20%20%20%20border%2Dradius%3A%205px%3B%20%2F%2A%20Softens%20it%20%2A%2F%0A%20%20%20%20%2F%2A%20Give%20it%20a%20some%20definition%20%2A%2F%0A%20%20%20%20border%3A%201px%20solid%20%23aaa%3B%0A%20%20%20%20%2F%2A%20Set%20it%20off%20left%20and%20right%2C%20seems%20to%20look%20a%20bit%20nicer%20when%20we%20have%20a%20background%20%2A%2F%0A%20%20%20%20margin%2Dleft%3A%20%200%2E5em%3B%0A%20%20%20%20margin%2Dright%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0A%40media%20screen%0A%20%20%20%20%7B%0A%20%20%20%20pre%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20On%20screen%2C%20use%20an%20auto%20scroll%20box%20for%20long%20lines%2C%20unless%20word%2Dwrap%20is%20enabled%20%2A%2F%0A%20%20%20%20%20%20%20%20white%2Dspace%3A%20pre%3B%0A%20%20%20%20%20%20%20%20overflow%3A%20auto%3B%0A%20%20%20%20%20%20%20%20%2F%2A%20Dotted%20looks%20better%20on%20screen%20and%20solid%20seems%20to%20print%20better%2E%20%2A%2F%0A%20%20%20%20%20%20%20%20border%3A%201px%20dotted%20%23777%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0Acode%20%2F%2A%20All%20inline%20code%20spans%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Ap%20%3E%20code%2C%20li%20%3E%20code%20%2F%2A%20Code%20spans%20in%20paragraphs%20and%20tight%20lists%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Pad%20a%20little%20from%20adjacent%20text%20%2A%2F%0A%20%20%20%20padding%2Dleft%3A%20%202px%3B%0A%20%20%20%20padding%2Dright%3A%202px%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0Ali%20%3E%20p%20code%20%2F%2A%20Code%20span%20in%20a%20loose%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20We%20have%20room%20for%20some%20more%20background%20color%20above%20and%20below%20%2A%2F%0A%20%20%20%20padding%3A%202px%3B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Math%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aspan%2Emath%20%2F%2A%20Pandoc%20inline%20math%20default%20and%20%2D%2Djsmath%20inline%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Tried%20font%2Dstyle%3Aitalic%20here%2C%20and%20it%20messed%20up%20MathJax%20rendering%20in%20some%20browsers%2E%20Maybe%20don%27t%20mess%20with%20at%20all%2E%20%2A%2F%0A%20%20%20%20%7D%0A%20%20%20%20%0Adiv%2Emath%20%2F%2A%20Pandoc%20%2D%2Djsmath%20display%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Aspan%2ELaTeX%20%2F%2A%20Pandoc%20%2D%2Dlatexmathml%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%20%0A%20%0Aeq%20%2F%2A%20Pandoc%20%2D%2Dgladtex%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%20%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Tables%20%2D%2D%2D%2D%20%2A%2F%0A%20%0A%2F%2A%20%20A%20clean%20textbook%2Dlike%20style%20with%20horizontal%20lines%20above%20and%20below%20and%20under%20%0A%20%20%20%20the%20header%2E%20Rows%20highlight%20on%20hover%20to%20help%20scanning%20the%20table%20on%20screen%2E%0A%2A%2F%0A%20%0Atable%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dcollapse%3A%20collapse%3B%0A%20%20%20%20border%2Dspacing%3A%200%3B%20%2F%2A%20IE%206%20%2A%2F%0A%20%0A%20%20%20%20border%2Dbottom%3A%202pt%20solid%20%23000%3B%0A%20%20%20%20border%2Dtop%3A%202pt%20solid%20%23000%3B%20%2F%2A%20The%20caption%20on%20top%20will%20not%20have%20a%20bottom%2Dborder%20%2A%2F%0A%20%0A%20%20%20%20%2F%2A%20Center%20%2A%2F%0A%20%20%20%20margin%2Dleft%3A%20auto%3B%0A%20%20%20%20margin%2Dright%3A%20auto%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0Athead%20%2F%2A%20Entire%20table%20header%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dbottom%3A%201pt%20solid%20%23000%3B%0A%20%20%20%20background%2Dcolor%3A%20%23eee%3B%20%2F%2A%20Does%20this%20BG%20print%20well%3F%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Atr%2Eheader%20%2F%2A%20Each%20header%20row%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%20%0A%20%0Atbody%20%2F%2A%20Entire%20table%20%20body%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20Table%20body%20rows%20%2A%2F%0A%20%0Atr%20%20%7B%0A%20%20%20%20%7D%0Atr%2Eodd%3Ahover%2C%20tr%2Eeven%3Ahover%20%2F%2A%20Use%20%2Eodd%20and%20%2Eeven%20classes%20to%20avoid%20styling%20rows%20in%20other%20tables%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20background%2Dcolor%3A%20%23eee%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0A%2F%2A%20Odd%20and%20even%20rows%20%2A%2F%0Atr%2Eodd%20%7B%7D%0Atr%2Eeven%20%7B%7D%0A%20%0Atd%2C%20th%20%2F%2A%20Table%20cells%20and%20table%20header%20cells%20%2A%2F%0A%20%20%20%20%7B%20%0A%20%20%20%20vertical%2Dalign%3A%20top%3B%20%2F%2A%20Word%20%2A%2F%0A%20%20%20%20vertical%2Dalign%3A%20baseline%3B%20%2F%2A%20Others%20%2A%2F%0A%20%20%20%20padding%2Dleft%3A%20%20%200%2E5em%3B%0A%20%20%20%20padding%2Dright%3A%20%200%2E5em%3B%0A%20%20%20%20padding%2Dtop%3A%20%20%20%200%2E2em%3B%0A%20%20%20%20padding%2Dbottom%3A%200%2E2em%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0A%2F%2A%20Removes%20padding%20on%20left%20and%20right%20of%20table%20for%20a%20tight%20look%2E%20Good%20if%20thead%20has%20no%20background%20color%2A%2F%0A%2F%2A%0Atr%20td%3Alast%2Dchild%2C%20tr%20th%3Alast%2Dchild%0A%20%20%20%20%7B%0A%20%20%20%20padding%2Dright%3A%200%3B%0A%20%20%20%20%7D%0Atr%20td%3Afirst%2Dchild%2C%20tr%20th%3Afirst%2Dchild%20%0A%20%20%20%20%7B%0A%20%20%20%20padding%2Dleft%3A%200%3B%0A%20%20%20%20%7D%0A%2A%2F%0A%20%0Ath%20%2F%2A%20Table%20header%20cells%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20font%2Dweight%3A%20bold%3B%20%0A%20%20%20%20%7D%0A%20%0Atfoot%20%2F%2A%20Table%20footer%20%28what%20appears%20here%20if%20caption%20is%20on%20top%3F%29%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Acaption%20%2F%2A%20This%20is%20for%20a%20table%20caption%20tag%2C%20not%20the%20p%2Ecaption%20Pandoc%20uses%20in%20a%20div%2Efigure%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20caption%2Dside%3A%20top%3B%0A%20%20%20%20border%3A%20none%3B%0A%20%20%20%20font%2Dsize%3A%200%2E9em%3B%0A%20%20%20%20font%2Dstyle%3A%20italic%3B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20margin%2Dbottom%3A%200%2E3em%3B%20%2F%2A%20Good%20for%20when%20on%20top%20%2A%2F%0A%20%20%20%20padding%2Dbottom%3A%200%2E2em%3B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Definition%20lists%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Adl%20%2F%2A%20The%20whole%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dtop%3A%202pt%20solid%20black%3B%0A%20%20%20%20padding%2Dtop%3A%200%2E5em%3B%0A%20%20%20%20border%2Dbottom%3A%202pt%20solid%20black%3B%0A%20%20%20%20%7D%0A%20%0Adt%20%2F%2A%20Definition%20term%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20font%2Dweight%3A%20bold%3B%0A%20%20%20%20%7D%0A%20%0Add%2Bdt%20%2F%2A%202nd%20or%20greater%20term%20in%20the%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dtop%3A%201pt%20solid%20black%3B%0A%20%20%20%20padding%2Dtop%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0Add%20%2F%2A%20A%20definition%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20margin%2Dbottom%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0Add%2Bdd%20%2F%2A%202nd%20or%20greater%20definition%20of%20a%20term%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dtop%3A%201px%20solid%20black%3B%20%2F%2A%20To%20separate%20multiple%20definitions%20%2A%2F%0A%20%20%20%20%7D%0A%20%20%20%20%0A%2F%2A%20%2D%2D%2D%2D%20Footnotes%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aa%2Efootnote%2C%20a%2EfootnoteRef%20%7B%20%2F%2A%20Pandoc%2C%20MultiMarkdown%20footnote%20links%20%2A%2F%0A%20%20%20%20font%2Dsize%3A%20small%3B%20%0A%20%20%20%20vertical%2Dalign%3A%20text%2Dtop%3B%0A%7D%0A%20%0Aa%5Bhref%5E%3D%22%23fnref%22%5D%2C%20a%2Ereversefootnote%20%2F%2A%20Pandoc%2C%20MultiMarkdown%2C%20%3F%3F%20footnote%20back%20links%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20a%5Bhref%5E%3D%22%23fnref%22%5D%2C%20a%2Ereversefootnote%20%2F%2A%20Pandoc%2C%20MultiMarkdown%20%2A%2F%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20Don%27t%20display%20these%20at%20all%20in%20print%20since%20the%20arrow%20is%20only%20something%20to%20click%20on%20%2A%2F%0A%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20%0Adiv%2Efootnotes%20%2F%2A%20Pandoc%20footnotes%20div%20at%20end%20of%20the%20document%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Adiv%2Efootnotes%20li%5Bid%5E%3D%22fn%22%5D%20%2F%2A%20A%20footnote%20item%20within%20that%20div%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20You%20can%20class%20stuff%20as%20%22noprint%22%20to%20not%20print%2E%20%0A%20%20%20Useful%20since%20you%20can%27t%20set%20this%20media%20conditional%20inside%20an%20HTML%20element%27s%20%0A%20%20%20style%20attribute%20%28I%20think%29%2C%20and%20you%20don%27t%20want%20to%20make%20another%20stylesheet%20that%20%0A%20%20%20imports%20this%20one%20and%20adds%20a%20class%20just%20to%20do%20this%2E%0A%2A%2F%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20%2Enoprint%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20display%3Anone%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A" rel="stylesheet" type="text/css" />
10</head>
11<body>
12<div id="header">
13<h1 class="title">Ganeti: failures and recovery scenarios</h1>
14</div>
15<div id="TOC">
16<ul>
17<li><a href="#scenario-1-loss-of-a-slave-node"><span class="toc-section-number">1</span> Scenario 1: loss of a Slave Node</a><ul>
18<li><a href="#part-1-loss-of-network-connectivity"><span class="toc-section-number">1.1</span> Part 1: Loss of network connectivity</a><ul>
19<li><a href="#description"><span class="toc-section-number">1.1.1</span> Description</a></li>
20<li><a href="#process"><span class="toc-section-number">1.1.2</span> Process</a></li>
21<li><a href="#recovery"><span class="toc-section-number">1.1.3</span> Recovery</a></li>
22<li><a href="#re-adding-the-failed-node"><span class="toc-section-number">1.1.4</span> Re-adding the failed node</a></li>
23</ul></li>
24<li><a href="#alternate-decisions"><span class="toc-section-number">1.2</span> Alternate decisions</a><ul>
25<li><a href="#completely-removing-h2-from-the-cluster"><span class="toc-section-number">1.2.1</span> Completely removing H2 from the cluster</a></li>
26</ul></li>
27</ul></li>
28<li><a href="#scenario-2-loss-of-master-node"><span class="toc-section-number">2</span> Scenario 2: Loss of Master Node</a><ul>
29<li><a href="#promoting-slave"><span class="toc-section-number">2.1</span> Promoting slave</a></li>
30</ul></li>
31</ul>
32</div>
33<p>We are going to simulate a number of failure situations, and recover from them.</p>
34<p>Try and replicate the scenarios on your hosts.</p>
35<h1 id="scenario-1-loss-of-a-slave-node"><a href="#scenario-1-loss-of-a-slave-node"><span class="header-section-number">1</span> Scenario 1: loss of a Slave Node</a></h1>
36<h2 id="part-1-loss-of-network-connectivity"><a href="#part-1-loss-of-network-connectivity"><span class="header-section-number">1.1</span> Part 1: Loss of network connectivity</a></h2>
37<h3 id="description"><a href="#description"><span class="header-section-number">1.1.1</span> Description</a></h3>
38<ul>
39<li>Cluster with 2 or more Nodes</li>
40<li>Master is up (H1)</li>
41<li>Slaves are up (H2, H3 etc)</li>
42<li>DRBD instance &quot;debianX&quot; is running on one of the Slaves (let's say H2) and is replicated to either the Master or another Slave</li>
43</ul>
44<h3 id="process"><a href="#process"><span class="header-section-number">1.1.2</span> Process</a></h3>
45<ul>
46<li>Confirm that <code>debianX</code> (or what the name of the DRBD VM you are using is) is running on H2 (gnt-instance list)</li>
47</ul>
48<pre><code># gnt-instance list -o name,pnode,snodes,status</code></pre>
49<pre><code>Instance Primary_node      Secondary_Nodes   Status
50debianX  H2.ws.nsrc.org    H1.ws.nsrc.org    running</code></pre>
51<ul>
52<li>Shut down (halt) H2 (<em>make sure you run this on H2!</em>)</li>
53</ul>
54<pre><code># halt -p</code></pre>
55<ul>
56<li>The VM goes down as a result (confirm this using ping / console)</li>
57</ul>
58<pre><code># gnt-instance list -o name,pnode,snodes,status
59
60Instance Primary_node      Secondary_Nodes   Status
61debianX  H2.ws.nsrc.org    H1.ws.nsrc.org    ERROR_nodedown</code></pre>
62<ul>
63<li>Run <code>gnt-cluster verify</code> (will take a while), and look at the output.</li>
64</ul>
65<p>As you notice, things are quite slow. Let's start by marking H2 as offline:</p>
66<pre><code># gnt-node modify -O yes H2.ws.nsrc.org
67
68Modified node H2.ws.nsrc.org
69 - master_candidate -&gt; False
70 - offline -&gt; True</code></pre>
71<p>It will take a little while, but now most commands will run faster as Ganeti stops trying to contact the other nodes in the cluster.</p>
72<p>Try running <code>gnt-instance list</code> and <code>gnt-node list</code> again.</p>
73<p>Also re-run <code>gnt-cluster verify</code></p>
74<h3 id="recovery"><a href="#recovery"><span class="header-section-number">1.1.3</span> Recovery</a></h3>
75<ul>
76<li>We cannot live-migrate the host (H2 is down), so we need to <em>failover</em></li>
77</ul>
78<p>If you attempt to migrate, you will be told:</p>
79<pre><code># gnt-instance migrate debianX
80
81Failure: prerequisites not met for this operation:
82error type: wrong_state, error details:
83Can't migrate, please use failover: Error 7: Failed connect to 10.10.0.X:1811; No route to host</code></pre>
84<ul>
85<li>Attempt failover</li>
86</ul>
87<pre><code># gnt-instance failover debianX</code></pre>
88<p>Hopefully you will see messages ending with:</p>
89<pre><code>...
90Sat Jan 18 15:58:11 2014 * activating the instance's disks on target node H1.ws.nsrc.org
91Sat Jan 18 15:58:11 2014  - WARNING: Could not prepare block device disk/0 on node H2.ws.nsrc.org (is_primary=False, pass=1): Node is marked offline
92Sat Jan 18 15:58:11 2014 * starting the instance on the target node H1.ws.nsrc.org</code></pre>
93<p>If so, skip to the section &quot;Confirm that the VM is now up on H1&quot;</p>
94<p>If you see this message:</p>
95<pre><code>Sat Jan 18 20:57:55 2014 Failover instance debianX
96Sat Jan 18 20:57:55 2014 * checking disk consistency between source and target
97Failure: command execution error:
98Disk 0 is degraded on target node, aborting failover</code></pre>
99<p>... you will need to <em>force</em> the operation. To do so:</p>
100<ul>
101<li>Read man page on <code>gnt-instance</code>, find the section about <code>failover</code>:</li>
102</ul>
103<blockquote>
104<p>If you are trying to migrate instances off a dead node, this will fail. Use the --ignore-consistency option for this purpose. Note that this option can be dangerous as errors in shutting down the instance will be ignored, resulting in possibly having the instance running on two machines in parallel (on disconnected DRBD drives).</p>
105</blockquote>
106<ul>
107<li><p>This is why we shut down H2, and didn't simply disconnect. You MUST verify that H2 really is down, and not simply disconnected from the management / replication network, otherwise you risk ending up with two running instances of <code>VM</code> (if someone force starts it) and you will need to force a resolution.</p></li>
108<li><p>Re-run <code>gnt-instance failover</code> with the '--ignore-consistency' flag. We are in a situation that requires this (H2 down)</p></li>
109</ul>
110<pre><code># gnt-instance failover --ignore-consistency debianX</code></pre>
111<p>There will be much more output this time, pay attention in particular if you see some warnings - these are normal since the H2 node is down, but we did it mark it as offline.</p>
112<pre><code>Sat Jan 18 21:03:15 2014 Failover instance debianX
113Sat Jan 18 21:03:15 2014 * checking disk consistency between source and target
114
115[ ... messages ... ]
116
117Sat Jan 18 21:03:27 2014 * activating the instance's disks on target node H1.ws.nsrc.org
118
119[ ... messages ... ]
120
121Sat Jan 18 21:03:33 2014 * starting the instance on the target node H1.ws.nsrc.org</code></pre>
122<ul>
123<li>Confirm that the VM is now up on H1:</li>
124</ul>
125<pre><code># gnt-instance list -o name,pnode,snodes,status
126
127Instance Primary_node      Secondary_Nodes   Status
128debianX  H1.ws.nsrc.org    H2.ws.nsrc.org    running</code></pre>
129<h3 id="re-adding-the-failed-node"><a href="#re-adding-the-failed-node"><span class="header-section-number">1.1.4</span> Re-adding the failed node</a></h3>
130<p>Ok, let's say H2 has been fixed.</p>
131<ul>
132<li><p>Restart H2. (Depending on the class setup, you may need to ask the instructor to do this for you).</p></li>
133<li><p>Make sure you can ping it and can log in to it</p></li>
134</ul>
135<p>We need to re-add it to the cluster. We do this using the <code>gnt-node add --readd</code> command on the cluster master node.</p>
136<p>From the <code>gnt-node</code> man page:</p>
137<blockquote>
138<p>In case you're readding a node after hardware failure, you can use the --readd parameter. In this case, you don't need to pass the secondary IP again, it will reused from the cluster. Also, the drained and offline flags of the node will be cleared before re-adding it.</p>
139</blockquote>
140<pre><code># gnt-node add --readd H2.ws.nsrc.org
141
142[ ... question about SSH ...]
143
144Sat Jan 18 22:09:43 2014  - INFO: Readding a node, the offline/drained flags were reset
145Sat Jan 18 22:09:43 2014  - INFO: Node will be a master candidate</code></pre>
146<p>We're good! It could take a while to re-sync the DRBD data if a lot of disk activity (writing) has taken place on <code>debianX</code>, but this will happen in the background.</p>
147<p>Check the cluster:</p>
148<pre><code># gnt-cluster verify</code></pre>
149<p>Probably the DRBD instances on H2 have not been activated. If so, you can use the command <code>gnt-cluster verify-disks</code> to fix this:</p>
150<pre><code># gnt-cluster verify-disks
151# gnt-cluster verify</code></pre>
152<p>When all is OK, let's try and migrate debianX back to H2:</p>
153<pre><code># gnt-instance migrate debianX</code></pre>
154<p>Test that the migration has worked.</p>
155<p>Note: if you are certain that the node <code>H2</code> is healthy (let's say it was just a power failure, and no corruption has happened on its filesystem or disks), you could simply do the following (DON'T DO THIS NOW!):</p>
156<pre><code># gnt-node modify -O no H2.ws.nsrc.org
157
158Sat Jan 18 22:08:45 2014  - INFO: Auto-promoting node to master candidate
159Sat Jan 18 22:08:45 2014  - WARNING: Transitioning node from offline to online state without using re-add. Please make sure the node is healthy!</code></pre>
160<p>But you would be warned about this.</p>
161<h2 id="alternate-decisions"><a href="#alternate-decisions"><span class="header-section-number">1.2</span> Alternate decisions</a></h2>
162<h3 id="completely-removing-h2-from-the-cluster"><a href="#completely-removing-h2-from-the-cluster"><span class="header-section-number">1.2.1</span> Completely removing H2 from the cluster</a></h3>
163<p>If we were <em>certain</em> that H2 cannot be fixed, and won't be back online, we could delete H2 from the cluster. To do this:</p>
164<ul>
165<li>Run <code>gnt-cluster verify</code>, and look at the output, you will see</li>
166</ul>
167<pre><code>Sat Jan 18 21:31:56 2014   - NOTICE: 1 offline node(s) found.</code></pre>
168<ul>
169<li><p>We marked H2 as down - let's assume H2 will be down for a while while it's being fixed.</p></li>
170<li><p>We decide to remove H2 from the cluster:</p></li>
171</ul>
172<pre><code># gnt-node remove H2.ws.nsrc.org
173
174Failure: prerequisites not met for this operation:
175error type: wrong_input, error details:
176Instance debianX is still running on the node, please remove first</code></pre>
177<p>Ok, we are not allowed to remove the H2, because Ganeti can see that we still have an instance (debianX) associated with H2.</p>
178<p>This is different from simply marking the node offline, as it means we are permanently getting rid of H2, and we need to take a decision about what to do for DRBD instances that were associated with H2.</p>
179<p>So what do we do now ? If we had a third node (H3), we could use the <code>gnt-node evacuate</code>. Read the man page for <code>gnt-node</code> and look for the section about the <code>evacuate</code> subcommand.</p>
180<p><code>gnt-node evacuate</code> is used to move all DRBD instances from one failed node to others.</p>
181<p>If the cluster has only two nodes, we need to first temporarily convert our instance <code>debianX</code> from DRBD to plain... Unfortunately this requires shutting down the VM instance first.</p>
182<pre><code># gnt-instance shutdown debianX</code></pre>
183<p>Wait until it is down (you will see some WARNINGs again), then:</p>
184<pre><code>gnt-instance modify -t plain -n H1.ws.nsrc.org debianX
185
186Sat Jan 18 21:40:54 2014 Converting template to plain
187Sat Jan 18 21:40:54 2014 Removing volumes on the secondary node...
188Sat Jan 18 21:40:54 2014 Removing unneeded volumes on the primary node...
189Modified instance debianX
190 - disk_template -&gt; plain</code></pre>
191<p>(WARNINGs removed in the output above)</p>
192<p>We shoud now be able to remove the node:</p>
193<pre><code># gnt-node remove H2.ws.nsrc.org</code></pre>
194<p>More WARNINGs! But did it work ?</p>
195<pre><code># gnt-node list
196
197Node              DTotal DFree MTotal MNode MFree Pinst Sinst
198H1.ws.nsrc.org  29.1G 12.6G   995M  145M  672M     2     0</code></pre>
199<p>Yes, H2 is gone.</p>
200<p>Note: Ganeti will modify <code>/etc/hosts</code> on your remaining nodes, and remove the line for H2!</p>
201<p>We can restart our debianX instance, by the way!</p>
202<pre><code># gnt-instance start debianX</code></pre>
203<p>Test that it comes up normally.</p>
204<h1 id="scenario-2-loss-of-master-node"><a href="#scenario-2-loss-of-master-node"><span class="header-section-number">2</span> Scenario 2: Loss of Master Node</a></h1>
205<p>Let's imagine a slightly more critical scenario: the crash of the master node.</p>
206<p>Let's shut down the master node!</p>
207<p>On H1:</p>
208<pre><code># halt -p</code></pre>
209<p>The node is now down. VM still running on other nodes are unaffected, but you are not able to make any changes (stop, start, modify, add VMs, change cluster configuration, etc...)</p>
210<h2 id="promoting-slave"><a href="#promoting-slave"><span class="header-section-number">2.1</span> Promoting slave</a></h2>
211<p>Let's assume that H1 is not coming back right now, and we need to promote a master.</p>
212<p>You will first need to decide which of the remaining nodes will become the master.</p>
213<p>Read about <code>master-failover</code>: <code>man gnt-cluster</code>, find the MASTER-FAILOVER section.</p>
214<p>To promote the slave:</p>
215<ul>
216<li><p>Log on to the node that will become master (let's say H2):</p></li>
217<li><p>Run the following command:</p></li>
218</ul>
219<pre><code># gnt-cluster master-failover</code></pre>
220<p>Note here that you will NOT be asked to confirm the operation!</p>
221<p>Note that if you were running in a 2 node configuration, you may have to specify <code>--no-voting</code> as an option: since there is no other remaining node in the cluster, no voting can take place anyway.</p>
222<p>At this point, the chosen node (H2) is now master. You can verify this using the <code>gnt-cluster getmaster</code> command.</p>
223<p>From this point, recovering downed machines is similar to what we did in the first scenario. But to be on the safe side:</p>
224<ul>
225<li><p>Restart H1, and log in to it as root</p></li>
226<li><p>Try and run <code>gnt-instance list</code></p></li>
227</ul>
228<p>Normally, even though H1 was down while the promotion of H2 happened, the <code>ganeti-masterd</code> daemon running on H1 was informed, on startup, that H1 was no longer master. The above command should therefore fail with:</p>
229<pre><code>This is not the master node, please connect to node 'H2.ws.nsrc.org' and
230rerun the command</code></pre>
231<p>Which means that H1 is well aware that H2 is the master now.</p>
232<p>Once you have done this, you may find that H2 and H1 have different versions of the cluster database. Type the following on H2:</p>
233<pre><code># gnt-cluster verify
234...
235Sat Jan 18 16:11:12 2014   - ERROR: cluster: File /var/lib/ganeti/config.data found with 2 different checksums (variant 1 on H2.ws.nsrc.org, H3.ws.nsrc.org; variant 2 on H1.ws.nsrc.org)
236Sat Jan 18 16:11:12 2014   - ERROR: cluster: File /var/lib/ganeti/ssconf_master_node found with 2 different checksums (variant 1 on H2.ws.nsrc.org, H3.ws.nsrc.org; variant 2 on H1.ws.nsrc.org)</code></pre>
237<p>You can fix this by:</p>
238<pre><code># gnt-cluster redist-conf</code></pre>
239<p>which pushes out the config from the current master to all the other nodes.</p>
240<p>Re-run <code>gnt-cluster verify</code> to check everything is OK again.</p>
241<p>Then to make H1 take over the master role again, login to H1 and run:</p>
242<pre><code># gnt-cluster master-failover</code></pre>
243</body>
244</html>