<div style="font-size:10pt; font-family:Gulim;"><p> </p><p><font face="tahoma"><span style="font-size: 14.6666669845581px; line-height: 18px; background-color: rgb(255, 255, 255);">안녕하세요.</span></font></p><p><span style="font-family: tahoma; font-size: 11pt; line-height: 18px; background-color: rgb(255, 255, 255);"> </span></p><p><span style="font-family: tahoma; font-size: 11pt; line-height: 18px; background-color: rgb(255, 255, 255);">5040 라인에 답이 있네요..</span></p><p><span style="font-family: tahoma; font-size: 11pt; line-height: 18px; background-color: rgb(255, 255, 255);">self._is_shared_block_storage(instance, dest_check_data)})</span></p><p> </p><p><span style="font-size: 11pt; font-family: tahoma;">위 메소드를 들어가보면 백엔드를 쓰는데 conf 의 [ libvirt ] 에서 images_type 이 rbd 가 아니면 </span><span style="font-family: tahoma; font-size: 11pt; line-height: 18px; background-color: rgb(255, 255, 255);">is_shared_block_storage 값이 모두 false 네요.</span></p><p><font face="돋움, Dotum, Helvetica, Apple SD Gothic Neo, sans-serif"><span style="font-size: 11pt; line-height: 18px; font-family: tahoma; background-color: rgb(255, 255, 255);">Qcow2, Lvm, Ploop 타입은 false, Rbd 만 True</span></font></p><p><font face="돋움, Dotum, Helvetica, Apple SD Gothic Neo, sans-serif"><span style="font-size: 12px; line-height: 18px; background-color: rgb(255, 255, 255);"><br></span></font></p><p><font face="돋움, Dotum, Helvetica, Apple SD Gothic Neo, sans-serif"><span style="font-size: 11pt; line-height: 18px; font-family: tahoma; background-color: rgb(255, 255, 255);">결국 Ceph 의 rbd 타입이 아니면 is_shared_block_storage 값은 false 입니다.</span></font></p><p><font face="돋움, Dotum, Helvetica, Apple SD Gothic Neo, sans-serif"><span style="font-size: 11pt; line-height: 18px; font-family: tahoma; background-color: rgb(255, 255, 255);">block migration 옵션 안주고 하실려면 소스 수정하세요..</span></font></p><p> </p><p> </p><p style="font-size:10pt;FONT-FAMILY: Gulim,AppleGothic,sans-serif;padding:0 0 0 10pt"><span>-----Original Message-----</span><br><b>From:</b> "김정석(Cloud운영기술팀)"<ironman.kim@kt.com> <br><b>To:</b> "openstack-ko@lists.openstack.org"<openstack-ko@lists.openstack.org>; <br><b>Cc:</b> "송덕한(Cloud운영기술팀)"<ascacults@kt.com>; "안선희(차세대Cloud개발팀)"<sunhee.ahn@kt.com>; "최성삼(Cloud운영기술팀)"<choi.sungsam@kt.com>; <br><b>Sent:</b> 2015-03-06 (금) 16:08:03<br><b>Subject:</b> [openstack-ko] live migration 관련 질문<br> </p>
<xmeta http-equiv="Content-Type" content="text/html; charset=ks_c_5601-1987">
<div>
<p>페이스북에 질문 하면 답변 안해준다고 하니 메일링으로 쏩니다<span lang="EN-US"> ^^</span></p>
<p><span lang="EN-US"> </span></p>
<p><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>에러가 발생 하여 관련 소스를 좀 열어 봤습니다<span lang="EN-US">.</span></p>
<p><span lang="EN-US"> </span></p>
<p>혹시나 해서<span lang="EN-US"> Grizzly, Icehouse, Juno </span>를 모두 비교 해보고 있는데<span lang="EN-US"> Juno
</span>는 소스가 많이 바뀌었네요<span lang="EN-US"></span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US">/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py"</span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"># Grizzly</span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US">2885 # Checking shared storage connectivity</span></p>
<p><span lang="EN-US">2886 # if block migration, instances_paths should not be on shared storage.</span></p>
<p><span lang="EN-US">2887 source = CONF.host</span></p>
<p><span lang="EN-US">2888 filename = dest_check_data["filename"]</span></p>
<p><span lang="EN-US">2889 block_migration = dest_check_data["block_migration"]</span></p>
<p><span lang="EN-US">2890 is_volume_backed = dest_check_data.get('is_volume_backed', False)</span></p>
<p><span lang="EN-US">2891 </span></p>
<p><span lang="EN-US">2892 shared = self._check_shared_storage_test_file(filename)</span></p>
<p><span lang="EN-US">2893 </span></p>
<p><span lang="EN-US">2894 if block_migration:</span></p>
<p><span lang="EN-US">2895 if shared:</span></p>
<p><span lang="EN-US">2896 reason = _("Block migration can not be used "</span></p>
<p><span lang="EN-US">2897 "with shared storage.")</span></p>
<p><span lang="EN-US">2898 raise exception.InvalidLocalStorage(reason=reason, path=source)</span></p>
<p><span lang="EN-US">2899 self._assert_dest_node_has_enough_disk(ctxt, instance_ref,</span></p>
<p><span lang="EN-US">2900 dest_check_data['disk_available_mb'],</span></p>
<p><span lang="EN-US">2901 dest_check_data['disk_over_commit'])</span></p>
<p><span lang="EN-US">2902 </span></p>
<p><span lang="EN-US">2903 elif not shared and not is_volume_backed:</span></p>
<p><span lang="EN-US">2904 reason = _("Live migration can not be used "</span></p>
<p><span lang="EN-US">2905 "without shared storage.")</span></p>
<p><span lang="EN-US">2906 raise exception.InvalidSharedStorage(reason=reason, path=source)</span></p>
<p><span lang="EN-US">2907 dest_check_data.update({"is_shared_storage": shared})</span></p>
<p><span lang="EN-US">2908 return dest_check_data</span></p>
<p><span lang="EN-US">2909 </span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"># Icehouse</span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US">4279 # Checking shared storage connectivity</span></p>
<p><span lang="EN-US">4280 # if block migration, instances_paths should not be on shared storage.</span></p>
<p><span lang="EN-US">4281 source = CONF.host</span></p>
<p><span lang="EN-US">4282 filename = dest_check_data["filename"]</span></p>
<p><span lang="EN-US">4283 block_migration = dest_check_data["block_migration"]</span></p>
<p><span lang="EN-US">4284 is_volume_backed = dest_check_data.get('is_volume_backed', False)</span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US">4285 has_local_disks = bool(</span></p>
<p><span lang="EN-US">4286 jsonutils.loads(self.get_instance_disk_info(instance['name'])))</span></p>
<p><span lang="EN-US">4287 </span></p>
<p><span lang="EN-US">4288 shared = self._check_shared_storage_test_file(filename)</span></p>
<p><span lang="EN-US">4289 </span></p>
<p><span lang="EN-US">4290 if block_migration:</span></p>
<p><span lang="EN-US">4291 if shared:</span></p>
<p><span lang="EN-US">4292 reason = _("Block migration can not be used "</span></p>
<p><span lang="EN-US">4293 "with shared storage.")</span></p>
<p><span lang="EN-US">4294 raise exception.InvalidLocalStorage(reason=reason, path=source)</span></p>
<p><span lang="EN-US">4295 self._assert_dest_node_has_enough_disk(context, instance,</span></p>
<p><span lang="EN-US">4296 dest_check_data['disk_available_mb'],</span></p>
<p><span lang="EN-US">4297 dest_check_data['disk_over_commit'])</span></p>
<p><span lang="EN-US">4298 </span></p>
<p><span lang="EN-US">4299 elif not shared and (not is_volume_backed or has_local_disks):</span></p>
<p><span lang="EN-US">4300 reason = _("Live migration can not be used "</span></p>
<p><span lang="EN-US">4301 "without shared storage.")</span></p>
<p><span lang="EN-US">4302 raise exception.InvalidSharedStorage(reason=reason, path=source)</span></p>
<p><span lang="EN-US">4303 dest_check_data.update({"is_shared_storage": shared})</span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"># Juno</span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US">5031 # Checking shared storage connectivity</span></p>
<p><span lang="EN-US">5032 # if block migration, instances_paths should not be on shared storage.</span></p>
<p><span lang="EN-US">5033 source = CONF.host</span></p>
<p><span lang="EN-US">5034 </span></p>
<p><span lang="EN-US">5035 dest_check_data.update({'is_shared_instance_path':</span></p>
<p><span lang="EN-US">5036 self._check_shared_storage_test_file(</span></p>
<p><span lang="EN-US">5037 dest_check_data['filename'])})</span></p>
<p><span lang="EN-US">5038 </span></p>
<p><span lang="EN-US">5039 dest_check_data.update({'is_shared_block_storage':</span></p>
<p><span lang="EN-US">5040 self._is_shared_block_storage(instance, dest_check_data)})</span></p>
<p><span lang="EN-US">5041 </span></p>
<p><span lang="EN-US">5042 if dest_check_data['block_migration']:</span></p>
<p><span lang="EN-US">5043 if (dest_check_data['is_shared_block_storage'] or</span></p>
<p><span lang="EN-US">5044 dest_check_data['is_shared_instance_path']):</span></p>
<p><span lang="EN-US">5045 reason = _("Block migration can not be used "</span></p>
<p><span lang="EN-US">5046 "with shared storage.")</span></p>
<p><span lang="EN-US">5047 raise exception.InvalidLocalStorage(reason=reason, path=source)</span></p>
<p><span lang="EN-US">5048 self._assert_dest_node_has_enough_disk(context, instance,</span></p>
<p><span lang="EN-US">5049 dest_check_data['disk_available_mb'],</span></p>
<p><span lang="EN-US">5050 dest_check_data['disk_over_commit'])</span></p>
<p><span lang="EN-US">5051 </span></p>
<p><span lang="EN-US">5052 elif not (dest_check_data['is_shared_block_storage'] or</span></p>
<p><span lang="EN-US">5053 dest_check_data['is_shared_instance_path']):</span></p>
<p><span lang="EN-US">5054 reason = _("Live migration can not be used "</span></p>
<p><span lang="EN-US">5055 "without shared storage.")</span></p>
<p><span lang="EN-US">5056 raise exception.InvalidSharedStorage(reason=reason, path=source)</span></p>
<p><span lang="EN-US"> </span></p>
<p>현재<span lang="EN-US"> Juno </span>버전에서<span lang="EN-US"> Exception
</span>이 발생하는곳이 마지막 줄에서 걸린 것으로 확인 됩니다<span lang="EN-US">.</span></p>
<p>혹시 <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><span lang="EN-US"> </span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US" style="font-size:9.0pt; color:#222222"><img width="336" height="53" 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 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" 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 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" 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 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 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" 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 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" 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 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 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" 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 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" 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 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 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" target="_blank"><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 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 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 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" 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><span lang="EN-US"> </span></p>
<p><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>
</xmeta></div>
<table style="display:none"><tr><td><img src="http://mail.naver.com/readReceipt/notify/?img=prKsDBImM6tmKqtdFqMYM63oFxEmM4EXK4MZM6EZM4E9pxEXFqvZtzFXp6UZKVl5WLl51zlqDBFdp6d5MreRhoRTbzk5bX3CMrnR1regWz0q%2BHK5WXI0WNFdM6FO74eZpm%3D%3D.gif" border="0"></td></tr></table>