<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ks_c_5601-1987">
<style>
<!--
@font-face
        {font-family:±¼¸²}
@font-face
        {font-family:±¼¸²}
@font-face
        {font-family:"¸¼Àº °íµñ"}
@font-face
        {font-family:"\@¸¼Àº °íµñ"}
@font-face
        {font-family:"\@±¼¸²"}
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        text-autospace:none;
        word-break:break-hangul;
        font-size:10.0pt;
        font-family:"¸¼Àº °íµñ"}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        text-autospace:none;
        word-break:break-hangul;
        font-size:9.0pt;
        font-family:"¸¼Àº °íµñ"}
span.EmailStyle17
        {font-family:"¸¼Àº °íµñ";
        color:windowtext}
span.Char
        {font-family:"¸¼Àº °íµñ"}
.MsoChpDefault
        {font-family:"¸¼Àº °íµñ"}
@page WordSection1
        {margin:3.0cm 72.0pt 72.0pt 72.0pt}
div.WordSection1
        {}
-->
</style>
</head>
<body lang="KO" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">ÆäÀ̽ººÏ¿¡ Áú¹® Çϸ頴亯 ¾ÈÇØÁشٰí ÇÏ´Ï ¸ÞÀϸµÀ¸·Î ½õ´Ï´Ù<span lang="EN-US"> ^^</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">NFS </span>º¼·ýÀ¸·Î ±¸ÃàÇÑ<span lang="EN-US"> Openstack Juno
</span>¹öÀü¿¡¼­ <span lang="EN-US">Live Migration </span>À» ½ÇÇàÇغ¸´Ï<span lang="EN-US"> Shared
</span>º¼·ýÀÌ ¾Æ´Ï¶ó¼­ ¸¶À̱׷¹À̼ÇÀ» ÇÒ ¼ö ¾ø´Ù´Â<span lang="EN-US"></span></p>
<p class="MsoNormal">¿¡·¯°¡ ¹ß»ý ÇÏ¿© °ü·Ã ¼Ò½º¸¦ Á» ¿­¾î ºÃ½À´Ï´Ù<span lang="EN-US">.</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal">Ȥ½Ã³ª Çؼ­<span lang="EN-US"> Grizzly, Icehouse, Juno </span>¸¦ ¸ðµÎ ºñ±³ Çغ¸°í Àִµ¥<span lang="EN-US"> Juno
</span>´Â ¼Ò½º°¡ ¸¹ÀÌ ¹Ù²î¾ú³×¿ä<span lang="EN-US"></span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py"</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># Grizzly</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">2885         # Checking shared storage connectivity</span></p>
<p class="MsoNormal"><span lang="EN-US">2886         # if block migration, instances_paths should not be on shared storage.</span></p>
<p class="MsoNormal"><span lang="EN-US">2887         source = CONF.host</span></p>
<p class="MsoNormal"><span lang="EN-US">2888         filename = dest_check_data["filename"]</span></p>
<p class="MsoNormal"><span lang="EN-US">2889         block_migration = dest_check_data["block_migration"]</span></p>
<p class="MsoNormal"><span lang="EN-US">2890         is_volume_backed = dest_check_data.get('is_volume_backed', False)</span></p>
<p class="MsoNormal"><span lang="EN-US">2891 </span></p>
<p class="MsoNormal"><span lang="EN-US">2892         shared = self._check_shared_storage_test_file(filename)</span></p>
<p class="MsoNormal"><span lang="EN-US">2893 </span></p>
<p class="MsoNormal"><span lang="EN-US">2894         if block_migration:</span></p>
<p class="MsoNormal"><span lang="EN-US">2895             if shared:</span></p>
<p class="MsoNormal"><span lang="EN-US">2896                 reason = _("Block migration can not be used "</span></p>
<p class="MsoNormal"><span lang="EN-US">2897                            "with shared storage.")</span></p>
<p class="MsoNormal"><span lang="EN-US">2898                 raise exception.InvalidLocalStorage(reason=reason, path=source)</span></p>
<p class="MsoNormal"><span lang="EN-US">2899             self._assert_dest_node_has_enough_disk(ctxt, instance_ref,</span></p>
<p class="MsoNormal"><span lang="EN-US">2900                                     dest_check_data['disk_available_mb'],</span></p>
<p class="MsoNormal"><span lang="EN-US">2901                                     dest_check_data['disk_over_commit'])</span></p>
<p class="MsoNormal"><span lang="EN-US">2902 </span></p>
<p class="MsoNormal"><span lang="EN-US">2903         elif not shared and not is_volume_backed:</span></p>
<p class="MsoNormal"><span lang="EN-US">2904             reason = _("Live migration can not be used "</span></p>
<p class="MsoNormal"><span lang="EN-US">2905                        "without shared storage.")</span></p>
<p class="MsoNormal"><span lang="EN-US">2906             raise exception.InvalidSharedStorage(reason=reason, path=source)</span></p>
<p class="MsoNormal"><span lang="EN-US">2907         dest_check_data.update({"is_shared_storage": shared})</span></p>
<p class="MsoNormal"><span lang="EN-US">2908         return dest_check_data</span></p>
<p class="MsoNormal"><span lang="EN-US">2909 </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># Icehouse</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">4279         # Checking shared storage connectivity</span></p>
<p class="MsoNormal"><span lang="EN-US">4280         # if block migration, instances_paths should not be on shared storage.</span></p>
<p class="MsoNormal"><span lang="EN-US">4281         source = CONF.host</span></p>
<p class="MsoNormal"><span lang="EN-US">4282         filename = dest_check_data["filename"]</span></p>
<p class="MsoNormal"><span lang="EN-US">4283         block_migration = dest_check_data["block_migration"]</span></p>
<p class="MsoNormal"><span lang="EN-US">4284         is_volume_backed = dest_check_data.get('is_volume_backed', False)</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">4285         has_local_disks = bool(</span></p>
<p class="MsoNormal"><span lang="EN-US">4286                 jsonutils.loads(self.get_instance_disk_info(instance['name'])))</span></p>
<p class="MsoNormal"><span lang="EN-US">4287 </span></p>
<p class="MsoNormal"><span lang="EN-US">4288         shared = self._check_shared_storage_test_file(filename)</span></p>
<p class="MsoNormal"><span lang="EN-US">4289 </span></p>
<p class="MsoNormal"><span lang="EN-US">4290         if block_migration:</span></p>
<p class="MsoNormal"><span lang="EN-US">4291             if shared:</span></p>
<p class="MsoNormal"><span lang="EN-US">4292                 reason = _("Block migration can not be used "</span></p>
<p class="MsoNormal"><span lang="EN-US">4293                            "with shared storage.")</span></p>
<p class="MsoNormal"><span lang="EN-US">4294                 raise exception.InvalidLocalStorage(reason=reason, path=source)</span></p>
<p class="MsoNormal"><span lang="EN-US">4295             self._assert_dest_node_has_enough_disk(context, instance,</span></p>
<p class="MsoNormal"><span lang="EN-US">4296                                     dest_check_data['disk_available_mb'],</span></p>
<p class="MsoNormal"><span lang="EN-US">4297                                     dest_check_data['disk_over_commit'])</span></p>
<p class="MsoNormal"><span lang="EN-US">4298 </span></p>
<p class="MsoNormal"><span lang="EN-US">4299         elif not shared and (not is_volume_backed or has_local_disks):</span></p>
<p class="MsoNormal"><span lang="EN-US">4300             reason = _("Live migration can not be used "</span></p>
<p class="MsoNormal"><span lang="EN-US">4301                        "without shared storage.")</span></p>
<p class="MsoNormal"><span lang="EN-US">4302             raise exception.InvalidSharedStorage(reason=reason, path=source)</span></p>
<p class="MsoNormal"><span lang="EN-US">4303         dest_check_data.update({"is_shared_storage": shared})</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"># Juno</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">5031         # Checking shared storage connectivity</span></p>
<p class="MsoNormal"><span lang="EN-US">5032         # if block migration, instances_paths should not be on shared storage.</span></p>
<p class="MsoNormal"><span lang="EN-US">5033         source = CONF.host</span></p>
<p class="MsoNormal"><span lang="EN-US">5034 </span></p>
<p class="MsoNormal"><span lang="EN-US">5035         dest_check_data.update({'is_shared_instance_path':</span></p>
<p class="MsoNormal"><span lang="EN-US">5036                 self._check_shared_storage_test_file(</span></p>
<p class="MsoNormal"><span lang="EN-US">5037                     dest_check_data['filename'])})</span></p>
<p class="MsoNormal"><span lang="EN-US">5038 </span></p>
<p class="MsoNormal"><span lang="EN-US">5039         dest_check_data.update({'is_shared_block_storage':</span></p>
<p class="MsoNormal"><span lang="EN-US">5040                 self._is_shared_block_storage(instance, dest_check_data)})</span></p>
<p class="MsoNormal"><span lang="EN-US">5041 </span></p>
<p class="MsoNormal"><span lang="EN-US">5042         if dest_check_data['block_migration']:</span></p>
<p class="MsoNormal"><span lang="EN-US">5043             if (dest_check_data['is_shared_block_storage'] or</span></p>
<p class="MsoNormal"><span lang="EN-US">5044                     dest_check_data['is_shared_instance_path']):</span></p>
<p class="MsoNormal"><span lang="EN-US">5045                 reason = _("Block migration can not be used "</span></p>
<p class="MsoNormal"><span lang="EN-US">5046                            "with shared storage.")</span></p>
<p class="MsoNormal"><span lang="EN-US">5047                 raise exception.InvalidLocalStorage(reason=reason, path=source)</span></p>
<p class="MsoNormal"><span lang="EN-US">5048             self._assert_dest_node_has_enough_disk(context, instance,</span></p>
<p class="MsoNormal"><span lang="EN-US">5049                                     dest_check_data['disk_available_mb'],</span></p>
<p class="MsoNormal"><span lang="EN-US">5050                                     dest_check_data['disk_over_commit'])</span></p>
<p class="MsoNormal"><span lang="EN-US">5051 </span></p>
<p class="MsoNormal"><span lang="EN-US">5052         elif not (dest_check_data['is_shared_block_storage'] or</span></p>
<p class="MsoNormal"><span lang="EN-US">5053                   dest_check_data['is_shared_instance_path']):</span></p>
<p class="MsoNormal"><span lang="EN-US">5054             reason = _("Live migration can not be used "</span></p>
<p class="MsoNormal"><span lang="EN-US">5055                        "without shared storage.")</span></p>
<p class="MsoNormal"><span lang="EN-US">5056             raise exception.InvalidSharedStorage(reason=reason, path=source)</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal">ÇöÀç<span lang="EN-US"> Juno </span>¹öÀü¿¡¼­<span lang="EN-US"> Exception
</span>ÀÌ ¹ß»ýÇϴ°÷ÀÌ ¸¶Áö¸· ÁÙ¿¡¼­ °É¸° °ÍÀ¸·Î È®ÀΠµË´Ï´Ù<span lang="EN-US">.</span></p>
<p class="MsoNormal">Ȥ½Ã <span lang="EN-US">dest_check_data['is_shared_block_storage']
</span>ÀÇ °ªÀ» ¾îµð¼­ °¡Á®¿Í¼­<span lang="EN-US"> if </span>±¸¹®À» Ã³¸®ÇÏ´ÂÁö ¾Æ½Ã´ÂºÐ °è½Ã³ª¿ä<span lang="EN-US"> ?</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt; color:#222222"><img width="336" height="53" id="±×¸²_x0020_1" src="cid:image001.png@01D05827.97B5D770" alt="1µî"></span><span lang="EN-US" style="color:#1F497D"></span></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="345" style="width:258.9pt">
<tbody>
<tr>
<td colspan="5" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="font-size:9.0pt; color:#222222"><img width="330" height="6" id="±×¸²_x0020_2" src="cid:image002.png@01D05827.97B5D770" alt="http://massmail.group.kt.com/NameCardImage/MailNameCard/NameCardTemplate/contentImage/emailsign_final_01.png"></span><span lang="EN-US" style="font-size:9.0pt; color:#222222"></span></p>
</td>
</tr>
<tr style="height:31.5pt">
<td rowspan="3" style="padding:0cm 0cm 0cm 0cm; height:31.5pt">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="font-size:9.0pt; color:#222222"><img width="8" height="76" id="±×¸²_x0020_3" src="cid:image003.png@01D05827.97B5D770" alt="http://massmail.group.kt.com/NameCardImage/MailNameCard/NameCardTemplate/contentImage/emailsign_final_02.png"></span><span lang="EN-US" style="font-size:9.0pt; color:#222222"></span></p>
</td>
<td colspan="4" style="padding:0cm 0cm 2.25pt 0cm; height:31.5pt">
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="320" style="width:240.0pt">
<tbody>
<tr style="height:31.5pt">
<td style="padding:0cm 0cm 0cm 0cm; height:31.5pt">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span style="color:#222222">±èÁ¤¼®</span><span lang="EN-US" style="color:#222222"></span></p>
</td>
<td style="padding:0cm 0cm 0cm 0cm; height:31.5pt">
<p class="MsoNormal" align="right" style="text-align:right; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="font-size:9.0pt; color:#222222"><img width="59" height="23" id="±×¸²_x0020_4" src="cid:image004.gif@01D05827.97B5D770" alt="http://massmail.group.kt.com/NameCardImage/MailNameCard/NameCardTemplate/contentImage/logo_ktds.gif"></span><span lang="EN-US" style="font-size:9.0pt; color:#222222"></span></p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan="4" style="padding:0cm 0cm 1.5pt 0cm">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span style="color:#222222">°úÀå<span lang="EN-US"><img width="4" height="5" id="±×¸²_x0020_5" src="cid:image005.png@01D05827.97B5D770" alt="http://massmail.group.kt.com/NameCardImage/MailNameCard/NameCardTemplate/contentImage/dot3.png">Cloud</span>¿î¿µ±â¼úÆÀ</span><span lang="EN-US" style="color:#222222"></span></p>
</td>
</tr>
<tr>
<td colspan="4" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="color:#222222">Cloud</span><span style="color:#222222">´ã´ç ±â¼ú¼­ºñ½ºº»ºÎ</span><span lang="EN-US" style="color:#222222"></span></p>
</td>
</tr>
<tr>
<td colspan="5" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="font-size:9.0pt; color:#222222"><img width="330" height="15" id="±×¸²_x0020_6" src="cid:image006.png@01D05827.97B5D770" alt="http://massmail.group.kt.com/NameCardImage/MailNameCard/NameCardTemplate/contentImage/email_sign_4x_07-08.png"></span><span lang="EN-US" style="font-size:9.0pt; color:#222222"></span></p>
</td>
</tr>
<tr>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="font-size:9.0pt; color:#222222"><img width="8" height="22" id="±×¸²_x0020_7" src="cid:image007.png@01D05827.97B5D770" alt="http://massmail.group.kt.com/NameCardImage/MailNameCard/NameCardTemplate/contentImage/emailsign330_08.png"></span><span lang="EN-US" style="font-size:9.0pt; color:#222222"></span></p>
</td>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="font-size:9.0pt; color:#222222"> </span></p>
</td>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="font-size:9.0pt; color:#222222">010-2864-2631 / </span>
<span lang="EN-US" style="font-size:9.0pt"><a href="mailto:ironman.kim@kt.com"><span style="color:blue">ironman.kim@kt.com</span></a></span><span lang="EN-US" style="font-size:9.0pt; color:#222222"></span></p>
</td>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="font-size:9.0pt; color:#222222"> </span></p>
</td>
<td style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="font-size:9.0pt; color:#222222"> </span></p>
</td>
</tr>
<tr>
<td colspan="5" style="padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left; text-autospace:ideograph-other; word-break:keep-all">
<span lang="EN-US" style="font-size:9.0pt; color:#222222"><img border="0" width="330" height="6" id="±×¸²_x0020_8" src="cid:image008.png@01D05827.97B5D770" alt="http://massmail.group.kt.com/NameCardImage/MailNameCard/NameCardTemplate/contentImage/email_sign_4x_09.png"></span><span lang="EN-US" style="font-size:9.0pt; color:#222222"></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
</div>
 <br>
<div style="background-color:white; border:1px dotted #003333; padding:.8em">
<p style="font-size:9pt; color:#999999; line-height:10pt; font-family:'Cambria','times roman',serif">
ÀÌ ¸ÞÀÏÀº ÁöÁ¤µÈ ¼öÃëÀθ¸À» À§ÇØ ÀÛ¼ºµÇ¾úÀ¸¸ç, Áß¿äÇÑ Á¤º¸³ª ÀúÀÛ±ÇÀ» Æ÷ÇÔÇÏ°í ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ¾î¶°ÇÑ ±ÇÇÑ ¾øÀÌ, º» ¹®¼­¿¡ Æ÷ÇԵȠÁ¤º¸ÀÇ ÀüºÎ ¶Ç´Â ÀϺθ¦ ¹«´ÜÀ¸·Î Á¦3ÀÚ¿¡°Ô °ø°³, ¹èÆ÷, º¹»ç ¶Ç´Â »ç¿ëÇϴ °ÍÀ» ¾ö°ÝÈ÷ ±ÝÁöÇÕ´Ï´Ù. ¸¸¾à, º» ¸ÞÀÏÀÌ À߸ø Àü¼ÛµÈ °æ¿ì, ¹ß½ÅÀΠ¶Ç´Â ´ç»ç¿¡ ¾Ë·ÁÁֽðí, º» ¸ÞÀÏÀ» Áï½Ã »èÁ¦ÇÏ¿© Áֽñ⠹ٶø´Ï´Ù.
<br>
This E-mail may contain confidential information and/or copyright material. This email is intended for the use of the addressee only. If you receive this email by mistake, please either delete it without reproducing, distributing or retaining copies thereof
 or notify the sender immediately.</p>
</div>
</body>
</html>