[openstack-ko] live migration °ü·Ã Áú¹®
¾È½Â±Ô
dappy at naver.com
Sun Mar 8 14:13:06 UTC 2015
ÇÑ°¡Áö ³õÄ£ ºÎºÐÀÌ Àֳ׿ä..
ŸÀÔ¸»°íµµ ´õ ºñ±³ÇÏ´Â ºÎºÐÀÌ ÀÖ½À´Ï´Ù.
Qcow2 ŸÀÔÀÏ °æ¿ì instance path °¡ °øÀ¯µÇ´Â À§Ä¡¶ó¸é ¾Æ·¡ÀÇ °ªÀº True ¶ó¼ is_shared_storage ´Â True °¡ µË´Ï´Ù.
dest_check_data.get('is_shared_instance_path') or self.image_backend.backend().is_file_in_instance_path()):
À̹ÌÁö ÇüÅ¿¡ µû¶ó °ªÀÌ ´Þ¶óÁö´Ï °æ¿ì¿¡ µû¶ó ¼Ò½º¸¦ µû¶ó°¡ º¸¼¼¿ä.
¿©±â¼ image_backend.backend() ´Â nova/virt/libvirt/imagebackend.py ÀÇ Backend Ŭ·¡½º¿¡¼ À̹ÌÁöÀÇ °ª¿¡ µû¶ó Á¤Àǵ˴ϴÙ.
-----Original Message-----
From: "¾È½Â±Ô"<dappy at naver.com>
To: <openstack-ko at lists.openstack.org>;
Cc:
Sent: 2015-03-08 (ÀÏ) 22:49:32
Subject: Re: [openstack-ko] live migration °ü·Ã Áú¹®
¾È³çÇϼ¼¿ä.
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 ±¸¹®À» ó¸®ÇÏ´ÂÁö ¾Æ½Ã´ÂºÐ °è½Ã³ª¿ä ?
_______________________________________________
openstack-ko mailing list
openstack-ko at lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-ko
More information about the openstack-ko
mailing list