[openstack-ko] live migration °ü·Ã Áú¹®

¾È½Â±Ô dappy at naver.com
Sun Mar 8 13:49:32 UTC 2015


¾È³çÇϼ¼¿ä.
 
5040 ¶óÀο¡ ´äÀÌ Àֳ׿ä..
self._is_shared_block_storage(instance, dest_check_data)})
 
À§ ¸Þ¼Òµå¸¦ µé¾î°¡º¸¸é ¹é¿£µå¸¦ ¾²´Âµ¥ conf ÀÇ [ libvirt ] ¿¡¼­  images_type ÀÌ rbd °¡ ¾Æ´Ï¸é is_shared_block_storage °ªÀÌ ¸ðµÎ false ³×¿ä.
Qcow2, Lvm, Ploop ŸÀÔÀº false,  Rbd ¸¸ True

°á±¹ Ceph ÀÇ rbd ŸÀÔÀÌ ¾Æ´Ï¸é is_shared_block_storage °ªÀº false ÀÔ´Ï´Ù.
block migration ¿É¼Ç ¾ÈÁÖ°í ÇϽǷÁ¸é ¼Ò½º ¼öÁ¤Çϼ¼¿ä..



-----Original Message-----
From: "±èÁ¤¼®(Cloud¿î¿µ±â¼úÆÀ)"<ironman.kim at kt.com> 
To: "openstack-ko at lists.openstack.org"<openstack-ko at lists.openstack.org>; 
Cc: "¼Û´öÇÑ(Cloud¿î¿µ±â¼úÆÀ)"<ascacults at kt.com>; "¾È¼±Èñ(Â÷¼¼´ëCloud°³¹ßÆÀ)"<sunhee.ahn at kt.com>; "ÃÖ¼º»ï(Cloud¿î¿µ±â¼úÆÀ)"<choi.sungsam at kt.com>; 
Sent: 2015-03-06 (±Ý) 16:08:03
Subject: [openstack-ko] live migration °ü·Ã Áú¹®
 
ÆäÀ̽ººÏ¿¡ Áú¹® ÇÏ¸é ´äº¯ ¾ÈÇØÁشٰí ÇÏ´Ï ¸ÞÀϸµÀ¸·Î ½õ´Ï´Ù ^^
 
NFS º¼·ýÀ¸·Î ±¸ÃàÇÑ Openstack Juno¹öÀü¿¡¼­ Live Migration À» ½ÇÇàÇغ¸´Ï Sharedº¼·ýÀÌ ¾Æ´Ï¶ó¼­ ¸¶À̱׷¹À̼ÇÀ» ÇÒ ¼ö ¾ø´Ù´Â
¿¡·¯°¡ ¹ß»ý ÇÏ¿© °ü·Ã ¼Ò½º¸¦ Á» ¿­¾î ºÃ½À´Ï´Ù.
 
Ȥ½Ã³ª Çؼ­ Grizzly, Icehouse, Juno ¸¦ ¸ðµÎ ºñ±³ Çغ¸°í Àִµ¥ Juno´Â ¼Ò½º°¡ ¸¹ÀÌ ¹Ù²î¾ú³×¿ä
 
/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py"
 
# Grizzly
 
2885         # Checking shared storage connectivity
2886         # if block migration, instances_paths should not be on shared storage.
2887         source = CONF.host
2888         filename = dest_check_data["filename"]
2889         block_migration = dest_check_data["block_migration"]
2890         is_volume_backed = dest_check_data.get('is_volume_backed', False)
2891 
2892         shared = self._check_shared_storage_test_file(filename)
2893 
2894         if block_migration:
2895             if shared:
2896                 reason = _("Block migration can not be used "
2897                            "with shared storage.")
2898                 raise exception.InvalidLocalStorage(reason=reason, path=source)
2899             self._assert_dest_node_has_enough_disk(ctxt, instance_ref,
2900                                     dest_check_data['disk_available_mb'],
2901                                     dest_check_data['disk_over_commit'])
2902 
2903         elif not shared and not is_volume_backed:
2904             reason = _("Live migration can not be used "
2905                        "without shared storage.")
2906             raise exception.InvalidSharedStorage(reason=reason, path=source)
2907         dest_check_data.update({"is_shared_storage": shared})
2908         return dest_check_data
2909 
 
 
# Icehouse
 
4279         # Checking shared storage connectivity
4280         # if block migration, instances_paths should not be on shared storage.
4281         source = CONF.host
4282         filename = dest_check_data["filename"]
4283         block_migration = dest_check_data["block_migration"]
4284         is_volume_backed = dest_check_data.get('is_volume_backed', False)
 
4285         has_local_disks = bool(
4286                 jsonutils.loads(self.get_instance_disk_info(instance['name'])))
4287 
4288         shared = self._check_shared_storage_test_file(filename)
4289 
4290         if block_migration:
4291             if shared:
4292                 reason = _("Block migration can not be used "
4293                            "with shared storage.")
4294                 raise exception.InvalidLocalStorage(reason=reason, path=source)
4295             self._assert_dest_node_has_enough_disk(context, instance,
4296                                     dest_check_data['disk_available_mb'],
4297                                     dest_check_data['disk_over_commit'])
4298 
4299         elif not shared and (not is_volume_backed or has_local_disks):
4300             reason = _("Live migration can not be used "
4301                        "without shared storage.")
4302             raise exception.InvalidSharedStorage(reason=reason, path=source)
4303         dest_check_data.update({"is_shared_storage": shared})
 
 
 
# Juno
 
5031         # Checking shared storage connectivity
5032         # if block migration, instances_paths should not be on shared storage.
5033         source = CONF.host
5034 
5035         dest_check_data.update({'is_shared_instance_path':
5036                 self._check_shared_storage_test_file(
5037                     dest_check_data['filename'])})
5038 
5039         dest_check_data.update({'is_shared_block_storage':
5040                 self._is_shared_block_storage(instance, dest_check_data)})
5041 
5042         if dest_check_data['block_migration']:
5043             if (dest_check_data['is_shared_block_storage'] or
5044                     dest_check_data['is_shared_instance_path']):
5045                 reason = _("Block migration can not be used "
5046                            "with shared storage.")
5047                 raise exception.InvalidLocalStorage(reason=reason, path=source)
5048             self._assert_dest_node_has_enough_disk(context, instance,
5049                                     dest_check_data['disk_available_mb'],
5050                                     dest_check_data['disk_over_commit'])
5051 
5052         elif not (dest_check_data['is_shared_block_storage'] or
5053                   dest_check_data['is_shared_instance_path']):
5054             reason = _("Live migration can not be used "
5055                        "without shared storage.")
5056             raise exception.InvalidSharedStorage(reason=reason, path=source)
 
ÇöÀç Juno ¹öÀü¿¡¼­ ExceptionÀÌ ¹ß»ýÇϴ°÷ÀÌ ¸¶Áö¸· ÁÙ¿¡¼­ °É¸° °ÍÀ¸·Î È®ÀÎ µË´Ï´Ù.
Ȥ½Ã dest_check_data['is_shared_block_storage']ÀÇ °ªÀ» ¾îµð¼­ °¡Á®¿Í¼­ if ±¸¹®À» ó¸®ÇÏ´ÂÁö ¾Æ½Ã´ÂºÐ °è½Ã³ª¿ä ?



More information about the openstack-ko mailing list