<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chenk</id>
		<title>OpenStack - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chenk"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/wiki/Special:Contributions/Chenk"/>
		<updated>2026-07-09T03:54:36Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=89507</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=89507"/>
				<updated>2015-09-03T15:22:54Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# Manila gate issues&lt;br /&gt;
#* Liberty-3 content&lt;br /&gt;
#* Feature freeze exceptions &amp;amp; deferral candidates&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Manila devref update: (u_glide)&lt;br /&gt;
#* Move DHSS support to separate table from http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html#mapping-of-share-drivers-and-share-features-support &lt;br /&gt;
#* Removal of &amp;quot;supported operations&amp;quot; pages in driver doc sections&lt;br /&gt;
# Automount vs asset injection [csaba]&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=85550</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=85550"/>
				<updated>2015-07-09T14:46:11Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 9 Jul, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle Meetup&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-liberty-midcycle-meetup&lt;br /&gt;
# share dismantling policies (http://thread.gmane.org/gmane.comp.cloud.openstack.devel/58419) (csaba)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=78081</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=78081"/>
				<updated>2015-04-23T15:00:06Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 23 Apr, 2015, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Doc reviews&lt;br /&gt;
# Liberty design summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-liberty-proposed-sessions&lt;br /&gt;
# Mount automation&lt;br /&gt;
#* Who suggested zeroconf?  Should we be investigating that further?&lt;br /&gt;
#* Other options under consideration: SSH/PsExec, automounter+LDAP, custom agent, Cloud-Init&lt;br /&gt;
# fix for glusterfs_native breaking multibackend setups (csaba, u_glide)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Provide_private_data_storage_API_for_drivers&amp;diff=77784</id>
		<title>Manila/Provide private data storage API for drivers</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Provide_private_data_storage_API_for_drivers&amp;diff=77784"/>
				<updated>2015-04-20T05:34:04Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: fix Github commit reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Provide limited data API for drivers ==&lt;br /&gt;
&lt;br /&gt;
===Problem ===&lt;br /&gt;
Drivers haven’t possibility to store key/value pairs in the database for each share (and probably for share snapshots too). These values are not visible to the tenants, they're just for the drivers. &lt;br /&gt;
&lt;br /&gt;
===Use cases ===&lt;br /&gt;
'''Use case #1:''' Generic driver should store volume id instead of renaming volume (current behaviour) &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Use case #2:''' Some backends that can't create 32-character share names and need to maintain a mapping from the 128-bit UUID to something smaller.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
Provide share data storage (key-value) for drivers. &lt;br /&gt;
 &lt;br /&gt;
Implement simple storage with following interface:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; &amp;gt;&lt;br /&gt;
class DriverShareData(object):&lt;br /&gt;
   def __init__(self, context, db, backend_host):&lt;br /&gt;
      pass&lt;br /&gt;
&lt;br /&gt;
   def get(self, share_id, key=None, default_value=None):&lt;br /&gt;
       pass&lt;br /&gt;
&lt;br /&gt;
   def update(self, share_id, share_data, delete_existing=False):&lt;br /&gt;
       pass&lt;br /&gt;
&lt;br /&gt;
   def delete(self, share_id, key):&lt;br /&gt;
       pass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Provide this storage in the manager to all drivers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class ShareManager(manager.SchedulerDependentManager):&lt;br /&gt;
    # …&lt;br /&gt;
    def __init__(self, share_driver=None, service_name=None, *args, **kwargs):&lt;br /&gt;
       # …&lt;br /&gt;
       self.share_data = DriverShareData(self.context, self.db, self.host)&lt;br /&gt;
       self.driver = importutils.import_object(&lt;br /&gt;
           share_driver, &lt;br /&gt;
           self.share_data,&lt;br /&gt;
           #...&lt;br /&gt;
       )&lt;br /&gt;
       # ...  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This storage will allow to get/update/delete private data of any share managed by the driver. Drivers will be able to create mappings between data in manila (Share) and backends (NAS). Also, drivers could use this storage for caching purposes - to minimize an amount of requests to the backend.&lt;br /&gt;
&lt;br /&gt;
Default implementation will store data in separate table in Manila database. &lt;br /&gt;
&lt;br /&gt;
===This concept vs model updates in Share Manager===&lt;br /&gt;
As you can see in  https://github.com/openstack/manila/blob/815e2c95acc402847bb497365ea5caba608fd8cc/manila/share/manager.py Share Manager is responsible to update information in DB. For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
        # ...&lt;br /&gt;
        try:&lt;br /&gt;
            if snapshot_ref:&lt;br /&gt;
                export_locations = self.driver.create_share_from_snapshot(&lt;br /&gt;
                    context, share_ref, snapshot_ref,&lt;br /&gt;
                    share_server=share_server)&lt;br /&gt;
            else:&lt;br /&gt;
                export_locations = self.driver.create_share(&lt;br /&gt;
                    context, share_ref, share_server=share_server)&lt;br /&gt;
&lt;br /&gt;
            self.db.share_export_locations_update(context, share_id,&lt;br /&gt;
                                                  export_locations)&lt;br /&gt;
       # ...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We could follow this rule and simply replace return value by dictionary with optional keys:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
        # ...&lt;br /&gt;
        try:&lt;br /&gt;
            if snapshot_ref:&lt;br /&gt;
                data = self.driver.create_share_from_snapshot(&lt;br /&gt;
                    context, share_ref, snapshot_ref,&lt;br /&gt;
                    share_server=share_server)&lt;br /&gt;
            else:&lt;br /&gt;
                data = self.driver.create_share(&lt;br /&gt;
                    context, share_ref, share_server=share_server)&lt;br /&gt;
&lt;br /&gt;
            self.db.share_export_locations_update(context, share_id,&lt;br /&gt;
                                                  data['export_locations'])&lt;br /&gt;
            # New code&lt;br /&gt;
            private_share_data = data.get('private_share_data')&lt;br /&gt;
            if private_share_data:&lt;br /&gt;
              self.db.private_share_data_update(context, share_id, private_share_data)&lt;br /&gt;
       # ...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But in this case we will be forced to do so in each method where drivers require private share data. Furthermore, we will be forced to retrieve and pass private share data to drivers through argument even if they don't require this data.&lt;br /&gt;
This will cause performance penalty and code will look like a mess :)&lt;br /&gt;
&lt;br /&gt;
'''That's why my (u_glide) proposal is:'''&lt;br /&gt;
Leave current model updates in Share manager as is and provide DriverShareData interface to all drivers in the manager.&lt;br /&gt;
&lt;br /&gt;
===DB scaling risks===&lt;br /&gt;
By default, all private share data will be stored in manila SQL DB and we have a risk that DB becomes a bottleneck in large deployments. This risk (in a scope of this feature) can be addressed by implementation of different storage backends for this interface. As we can see backends don’t share data, so storage can be easily horizontally scaled. We can move private share data to any distributed key-value storage.&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=70731</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=70731"/>
				<updated>2014-12-18T14:56:58Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Dec, 2014, 15:00 UTC'''&lt;br /&gt;
# Development status&lt;br /&gt;
# Kilo-1 milestone review (bswartz)&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/kilo-1&lt;br /&gt;
# Kilo-2 planning (bswartz)&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/kilo-2&lt;br /&gt;
# NetApp cDOT driver refactoring (cknight)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/netapp-manila-cdot-driver-refactoring&lt;br /&gt;
# Holidays&lt;br /&gt;
# Syetem services (if by chance time remains) (csaba)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=69596</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=69596"/>
				<updated>2014-12-04T14:57:14Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' The meeting on 27 Nov is CANCELLED due to a US holiday.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 4 Dec, 2014, 15:00 UTC'''&lt;br /&gt;
# Development status&lt;br /&gt;
# Kilo-1 milestone (bswartz)&lt;br /&gt;
# Ask Manila community: resolving a name clash (csaba)&lt;br /&gt;
# Show Manila community: git-review-branch (csaba)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=69595</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=69595"/>
				<updated>2014-12-04T14:40:30Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' The meeting on 27 Nov is CANCELLED due to a US holiday.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 4 Dec, 2014, 15:00 UTC'''&lt;br /&gt;
# Development status&lt;br /&gt;
# Kilo-1 milestone (bswartz)&lt;br /&gt;
# Ask Manila community: resolving a name clash (csaba)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=60519</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=60519"/>
				<updated>2014-08-14T14:45:24Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 15 Aug, 2014, 15:00 UTC'''&lt;br /&gt;
# Cirros status (csaba)&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Feb 13, 2014 15:00 UTC'''&lt;br /&gt;
# [http://git.openstack.org/cgit/openstack/governance/tree/reference/incubation-integration-requirements Incubation] (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Oct 17, 2013, 15:00 UTC'''&lt;br /&gt;
# [https://blueprints.launchpad.net/manila/+spec/join-tenant-network Networking BP]&lt;br /&gt;
&lt;br /&gt;
'''Sep 26, 2013, 15:00 UTC'''&lt;br /&gt;
# [[Manila/Networking|Networking Wiki]] (bswartz) &lt;br /&gt;
&lt;br /&gt;
'''Aug 8, 2013, 15:00 UTC'''&lt;br /&gt;
# [[Manila/ProjectPlan|Project Plan]] -- bswartz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/docs/&amp;diff=56739</id>
		<title>Manila/docs/</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/docs/&amp;diff=56739"/>
				<updated>2014-06-25T11:38:06Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: Redirected page to Manila/docs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Manila/docs]]&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Setting_up_DevStack_with_Manila_on_Fedora_20&amp;diff=56737</id>
		<title>Setting up DevStack with Manila on Fedora 20</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Setting_up_DevStack_with_Manila_on_Fedora_20&amp;diff=56737"/>
				<updated>2014-06-25T11:35:21Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=42838</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=42838"/>
				<updated>2014-02-20T14:37:00Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 20 Feb, 2014, 15:00 UTC'''&lt;br /&gt;
# Development Status&lt;br /&gt;
#* Cirros manila-service-generic update (csaba)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
#* Discussion on service VM role for generic driver and other (hypothetic) multitenant drivers (csaba)&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Feb 13, 2014 15:00 UTC'''&lt;br /&gt;
# [http://git.openstack.org/cgit/openstack/governance/tree/reference/incubation-integration-requirements Incubation] (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Oct 17, 2013, 15:00 UTC'''&lt;br /&gt;
# [https://blueprints.launchpad.net/manila/+spec/join-tenant-network Networking BP]&lt;br /&gt;
&lt;br /&gt;
'''Sep 26, 2013, 15:00 UTC'''&lt;br /&gt;
# [[Manila/Networking|Networking Wiki]] (bswartz) &lt;br /&gt;
&lt;br /&gt;
'''Aug 8, 2013, 15:00 UTC'''&lt;br /&gt;
# [[Manila/ProjectPlan|Project Plan]] -- bswartz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Networking/Gateway_mediated&amp;diff=41402</id>
		<title>Manila/Networking/Gateway mediated</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Networking/Gateway_mediated&amp;diff=41402"/>
				<updated>2014-02-05T20:14:44Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: Chenk moved page Manila Networking/Hypervisor mediated to Manila Networking/Gateway mediated: calling the subject &amp;quot;Hypervisor mediated&amp;quot; was a misnomer.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gateway mediated storage access for NFS shares and Multi-tenancy =&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&lt;br /&gt;
This document outlines an approach to achieving multi-tenancy using Manila OpenStack and the architecture/design considerations wrt enabling Multi-tenancy in the cloud using this approach. This model is based on the [[Manila_Networking#Gateway_Mediated|Gateway mediated approach to Manila Networking]]. Here &amp;amp;quot;gateway&amp;amp;quot; is to be understood as the storage gateway, ie. the machine which is member a permanent network which contains the storage backends, and manages/mediates access from tenant machines to the storage backends.&lt;br /&gt;
&lt;br /&gt;
The approach taken is a gateway mediated one where the decision to allow tenant access to the intended Manila share is made in the gateway. Typically, each gateway can have multiple guest instances each of which is considered a tenant. The proposed design involves running a user-space NFS server on the gateway. Tenants rely on NFS clients to connect to this NFS server and consume any exported shares. The NFS server in turn is assumed to be capable enough, to talk to different storage backends and serve requests made by its clients.&lt;br /&gt;
&lt;br /&gt;
We propose to use nfs-ganesha[1][2] as the user-space NFS daemon in this architecture. This is based on the following: nfs-ganesha is easily extensible to various filesystem backends and has a modular/plugin-based architecture. A plugin is commonly referred to as File System Abstraction Layer (FSAL) in NFS-Ganesha parlance. Currently, nfs-ganesha has support for a variety of FSALs including ones for CephFS, GlusterFS, Lustre, ZFS, VFS, GPFS etc. nfs-ganesha also supports various NFS protocol versions like NFSv2,v3,v4,v4.1,v4.2 and pNFS. This makes it ideal for future use-case extensibility and also from the point of view of accomodating the maximum possible filesystem backends, including any new vendor developed ones.&lt;br /&gt;
&lt;br /&gt;
When a mount request is received by the nfs-ganesha server, it checks whether the client/tenant is allowed to access the related export or share. Based on the NFS share ACL configurations, the exported share operation will succeed or fail. If the mount succeeds, all further operations performed from the client will succeed and Ganesha would route such requests to the storage backend through the corresponding filesystem FSAL. So tenant share separation is made possible based on NFS ACLs and access permissions. Further, nfs-ganesha also supports Kerberos based authentication in case Manila shares need to be exported and consumed across nodes in an Openstack compute cluster when nfs-ganesha would be mounted on each gateway in the cluster in Multi-head configuration.&lt;br /&gt;
&lt;br /&gt;
== Advantages: ==&lt;br /&gt;
&lt;br /&gt;
* Works with all guest operating systems that have a nfs client built in. Well standardized and widely available support.&lt;br /&gt;
* Does not require any VM/guest plugin installation or any Openstack components to be modified to work with this approach.&lt;br /&gt;
* Works across the majority of the prevalent filesystem backends and/or Storage Arrays without modifications.&lt;br /&gt;
* This approach most closely mirrors how guests interact with storage controllers in Cinder. The storage controller only needs to know about compute nodes and the gateway deals with the problem of presenting the storage to the guest.&lt;br /&gt;
* Security is enforced by the gateway. Backends need not support any security to protect tenant data from other tenants (or even enforce protection between instances of one tenant).&lt;br /&gt;
* Further tenant separation is based on share permissions based on NFS ACLs and authentication. This is easily enforced.&lt;br /&gt;
* No dependence or interaction with Neutron&lt;br /&gt;
* NFS server on the gateway performs caching. So not all requests from the instances need to be served by the storage layer. Thereby data access is sometimes faster, and the storage layer is less burdened.&lt;br /&gt;
* Being a user-space server, nfs-ganesha's cache-inode layer can grow arbitrarily large, limited mostly (only) by the underlying hardware. This supports greater scalability in terms of supporting larger number of compute instances and share operations/requests.&lt;br /&gt;
* Extensible to support other multi-tenant use-cases like share reservations, QoS requirements etc.&lt;br /&gt;
&lt;br /&gt;
== Disadvantages: ==&lt;br /&gt;
&lt;br /&gt;
* Resources are consumed by nfs-ganesha as it runs on the gateway. Resource consumption by ganesha has been seen to be moderate across general workloads so we don't see this as a major impact to the overall architecture currently. Further tests need to be carried out to ascertain this impact if any.&lt;br /&gt;
* High Availability for tenant share access via nfs-ganesha could necessitate additional configuration and state maintenance. However, this availability support/infrastructure is mostly available as a separate Ganesha solution w.r.t. different filesystem backends.&lt;br /&gt;
&lt;br /&gt;
== References: ==&lt;br /&gt;
&lt;br /&gt;
[1] https://github.com/nfs-ganesha/nfs-ganesha/wiki&lt;br /&gt;
&lt;br /&gt;
[2] https://forge.gluster.org/nfs-ganesha-and-glusterfs-integration/pages/Home&lt;br /&gt;
&lt;br /&gt;
[[Image:Hypervisor-mediated.png|frame|none]]&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Networking/Hypervisor_mediated&amp;diff=41403</id>
		<title>Manila/Networking/Hypervisor mediated</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Networking/Hypervisor_mediated&amp;diff=41403"/>
				<updated>2014-02-05T20:14:44Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: Chenk moved page Manila Networking/Hypervisor mediated to Manila Networking/Gateway mediated: calling the subject &amp;quot;Hypervisor mediated&amp;quot; was a misnomer.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Manila Networking/Gateway mediated]]&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Networking/Gateway_mediated&amp;diff=41401</id>
		<title>Manila/Networking/Gateway mediated</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Networking/Gateway_mediated&amp;diff=41401"/>
				<updated>2014-02-05T20:13:46Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gateway mediated storage access for NFS shares and Multi-tenancy =&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&lt;br /&gt;
This document outlines an approach to achieving multi-tenancy using Manila OpenStack and the architecture/design considerations wrt enabling Multi-tenancy in the cloud using this approach. This model is based on the [[Manila_Networking#Gateway_Mediated|Gateway mediated approach to Manila Networking]]. Here &amp;amp;quot;gateway&amp;amp;quot; is to be understood as the storage gateway, ie. the machine which is member a permanent network which contains the storage backends, and manages/mediates access from tenant machines to the storage backends.&lt;br /&gt;
&lt;br /&gt;
The approach taken is a gateway mediated one where the decision to allow tenant access to the intended Manila share is made in the gateway. Typically, each gateway can have multiple guest instances each of which is considered a tenant. The proposed design involves running a user-space NFS server on the gateway. Tenants rely on NFS clients to connect to this NFS server and consume any exported shares. The NFS server in turn is assumed to be capable enough, to talk to different storage backends and serve requests made by its clients.&lt;br /&gt;
&lt;br /&gt;
We propose to use nfs-ganesha[1][2] as the user-space NFS daemon in this architecture. This is based on the following: nfs-ganesha is easily extensible to various filesystem backends and has a modular/plugin-based architecture. A plugin is commonly referred to as File System Abstraction Layer (FSAL) in NFS-Ganesha parlance. Currently, nfs-ganesha has support for a variety of FSALs including ones for CephFS, GlusterFS, Lustre, ZFS, VFS, GPFS etc. nfs-ganesha also supports various NFS protocol versions like NFSv2,v3,v4,v4.1,v4.2 and pNFS. This makes it ideal for future use-case extensibility and also from the point of view of accomodating the maximum possible filesystem backends, including any new vendor developed ones.&lt;br /&gt;
&lt;br /&gt;
When a mount request is received by the nfs-ganesha server, it checks whether the client/tenant is allowed to access the related export or share. Based on the NFS share ACL configurations, the exported share operation will succeed or fail. If the mount succeeds, all further operations performed from the client will succeed and Ganesha would route such requests to the storage backend through the corresponding filesystem FSAL. So tenant share separation is made possible based on NFS ACLs and access permissions. Further, nfs-ganesha also supports Kerberos based authentication in case Manila shares need to be exported and consumed across nodes in an Openstack compute cluster when nfs-ganesha would be mounted on each gateway in the cluster in Multi-head configuration.&lt;br /&gt;
&lt;br /&gt;
== Advantages: ==&lt;br /&gt;
&lt;br /&gt;
* Works with all guest operating systems that have a nfs client built in. Well standardized and widely available support.&lt;br /&gt;
* Does not require any VM/guest plugin installation or any Openstack components to be modified to work with this approach.&lt;br /&gt;
* Works across the majority of the prevalent filesystem backends and/or Storage Arrays without modifications.&lt;br /&gt;
* This approach most closely mirrors how guests interact with storage controllers in Cinder. The storage controller only needs to know about compute nodes and the gateway deals with the problem of presenting the storage to the guest.&lt;br /&gt;
* Security is enforced by the gateway. Backends need not support any security to protect tenant data from other tenants (or even enforce protection between instances of one tenant).&lt;br /&gt;
* Further tenant separation is based on share permissions based on NFS ACLs and authentication. This is easily enforced.&lt;br /&gt;
* No dependence or interaction with Neutron&lt;br /&gt;
* NFS server on the gateway performs caching. So not all requests from the instances need to be served by the storage layer. Thereby data access is sometimes faster, and the storage layer is less burdened.&lt;br /&gt;
* Being a user-space server, nfs-ganesha's cache-inode layer can grow arbitrarily large, limited mostly (only) by the underlying hardware. This supports greater scalability in terms of supporting larger number of compute instances and share operations/requests.&lt;br /&gt;
* Extensible to support other multi-tenant use-cases like share reservations, QoS requirements etc.&lt;br /&gt;
&lt;br /&gt;
== Disadvantages: ==&lt;br /&gt;
&lt;br /&gt;
* Resources are consumed by nfs-ganesha as it runs on the gateway. Resource consumption by ganesha has been seen to be moderate across general workloads so we don't see this as a major impact to the overall architecture currently. Further tests need to be carried out to ascertain this impact if any.&lt;br /&gt;
* High Availability for tenant share access via nfs-ganesha could necessitate additional configuration and state maintenance. However, this availability support/infrastructure is mostly available as a separate Ganesha solution w.r.t. different filesystem backends.&lt;br /&gt;
&lt;br /&gt;
== References: ==&lt;br /&gt;
&lt;br /&gt;
[1] https://github.com/nfs-ganesha/nfs-ganesha/wiki&lt;br /&gt;
&lt;br /&gt;
[2] https://forge.gluster.org/nfs-ganesha-and-glusterfs-integration/pages/Home&lt;br /&gt;
&lt;br /&gt;
[[Image:Hypervisor-mediated.png|frame|none]]&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Networking&amp;diff=41247</id>
		<title>Manila/Networking</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Networking&amp;diff=41247"/>
				<updated>2014-02-04T16:04:32Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: formatting cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila =&lt;br /&gt;
&lt;br /&gt;
This is a page about networking for Manila (OpenStack Shared Filesystem Service)&lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
Currently we support:&lt;br /&gt;
* NFS&lt;br /&gt;
* CIFS&lt;br /&gt;
&lt;br /&gt;
We intend to support more though. Possible future protocols include:&lt;br /&gt;
* GlusterFS&lt;br /&gt;
* GPFS&lt;br /&gt;
* Ceph FS&lt;br /&gt;
* Dropbox (or similar)&lt;br /&gt;
&lt;br /&gt;
= Backends =&lt;br /&gt;
&lt;br /&gt;
Currently we've implemented two backends:&lt;br /&gt;
* Linux LVM&lt;br /&gt;
* NetApp (7-mode and C-mode)&lt;br /&gt;
&lt;br /&gt;
We're looking to other vendors to implement backends for their hardware/software.&lt;br /&gt;
&lt;br /&gt;
= Frontends =&lt;br /&gt;
&lt;br /&gt;
How the end user actually interacts with the filesystems provided for Manila is an interesting question. Consider the following approaches:&lt;br /&gt;
&lt;br /&gt;
=== Network Plumbing ===&lt;br /&gt;
&lt;br /&gt;
The approach here is to interact with Neutron to ensure that the server(s) providing the storage are connected to the tenant's private network. This means that by the time an attach operation completes, a network link has been configured so that the client(s) specified in the attach operation can send packets to the server(s) returned hosting the storage.&lt;br /&gt;
&lt;br /&gt;
In this mode, clients can directly interact with the storage server using the storage protocol that they intended (i.e. CIFS or NFS). The storage server must be responsible for enforcing security such that clients are not able to see resources that haven't been attached to them, and more importantly, tenants must not see data owned by other tenants. On the controller side this may be accomplished by virtualizing the storage server (The NetApp vserver approach), by using firewalls between the clients and server, or by using rules built into the storage server itself (rules in /etc/exports or /etc/smb.conf, etc).&lt;br /&gt;
&lt;br /&gt;
Advantages:&lt;br /&gt;
* No performance bottlenecks introduced&lt;br /&gt;
* It feels natural to the end user, and applications qualified against CIFS/NFS in the physical work are more likely to work without issues in the cloud&lt;br /&gt;
* Users can take advantage of special CIFS/NFS features if they are available&lt;br /&gt;
* It pushes the hard security problems down into the drivers&lt;br /&gt;
* It does not depend on Nova&lt;br /&gt;
* It can work with bare metal clients&lt;br /&gt;
&lt;br /&gt;
Disadvantages:&lt;br /&gt;
* It relies on Neutron, creating a (possibly unwanted) dependency&lt;br /&gt;
* It pushes the hard security problems down into the drivers&lt;br /&gt;
&lt;br /&gt;
For security to work in this approach, each tenant will have to provide some details before they can connect to any shares. Each tenant must provide these details a minimum of one time, but possibly more than once (if the tenant has multiple security domains). The details will depend on the protocols being used. Some examples:&lt;br /&gt;
* Active Directory domain and credentials (CIFS)&lt;br /&gt;
* LDAP and/or Kerberos domain and credentials (NFS)&lt;br /&gt;
&lt;br /&gt;
=== Hypervisor Mediated ===&lt;br /&gt;
&lt;br /&gt;
This approach involves using some special technology to virtualize the filesystem through to the guest. The one we've looked at most closely is VirtFS.&lt;br /&gt;
&lt;br /&gt;
An attach operation under this approach would simply involve attaching the storage to the compute node rather than the ultimate user (as far as the backend is concerned). An additional sequence of actions would have to take place in the Manila manager to complete the attachment all the way through to the guest, which would include callbacks to nova to configure the needed VirtFS steps.&lt;br /&gt;
&lt;br /&gt;
Advantages:&lt;br /&gt;
* This approach most closely mirrors how guests interact with storage controllers in Cinder. The storage controller only needs to know about compute nodes and the hypervisor deals with the problem of presenting the storage to the guest.&lt;br /&gt;
* Security is enforced by the hypervisor. Backends need not support any security to protect tenant data from other tenants (or even enforce protection between instances of one tenant).&lt;br /&gt;
* No dependence or interaction with Neutron&lt;br /&gt;
&lt;br /&gt;
Disadvantages:&lt;br /&gt;
* Requires a hypervisor (will not work w/ bare metal)&lt;br /&gt;
* Hypervisor support limited (only KVM and Xen)&lt;br /&gt;
* Guest OS support limited (Only Linux and BSD)&lt;br /&gt;
* User sees a Plan9 filesystem instead of a NFS or CIFS filesystem which may prevent access to features&lt;br /&gt;
* Depends on adding some new features to Nova&lt;br /&gt;
* It may be hard to preserve ACLs on the files if people care about that (for example UID/GID/mode bits to enforce filesystem security in multiuser environments)&lt;br /&gt;
* VirtFS may be immature and not well maintained (this is an opinion)&lt;br /&gt;
* Possible performance bottleneck in VirtFS itself, although benchmarks suggest that VirtFS can be even faster than running NFS over a virtual NIC&lt;br /&gt;
&lt;br /&gt;
=== Gateway Mediated ===&lt;br /&gt;
&lt;br /&gt;
The theory of the gateway mediated approach is that the hypervisor mediated (VirtFS) approach is desirable, but we want to overcome the limitations of VirtFS itself. One way to do this is to take advantage of the hypervisor to add an additional virtual NIC through which the guest OS may access its shared filesystems.&lt;br /&gt;
&lt;br /&gt;
The virtual NIC would implement half of a point to point tunnel, the other half being at the storage gateway. Under normal circumstances, the storage gateway would run on the compute node alongside nova. In this configuration, backends would still attach storage to the compute node just like the VirtFS case, but the gateway would simply tunnel filesystem access protocols straight through, such that the guest could use a regular NFS or CIFS client, connecting to special tunnel-specific IP addresses, and the gateway would do any firewalling and NAT necessary to connect the client with the real backend while preventing the client from seeing data it shouldn't.&lt;br /&gt;
&lt;br /&gt;
Advantages:&lt;br /&gt;
* This approach also closely mirrors how guests interact with storage controllers in Cinder&lt;br /&gt;
* Security is enforced by the gateway, in the form of spoofing-prevention and firewalling of packets from the client. Backends could implement only IP-based security.&lt;br /&gt;
* No dependence or interaction with Neutron&lt;br /&gt;
* Works with any hypervisor (unlike VirtFS)&lt;br /&gt;
* Work with any guest (unlike VirtFS)&lt;br /&gt;
* Users can take advantage of special CIFS/NFS features if they are available (with some exceptions)&lt;br /&gt;
* It feels natural to the end user, and applications qualified against CIFS/NFS in the physical work are more likely to work without issues in the cloud (with some exceptions)&lt;br /&gt;
&lt;br /&gt;
Disadvantages:&lt;br /&gt;
* Requires a hypervisor (will not work w/ bare metal)&lt;br /&gt;
* Depends on adding some new features to Nova&lt;br /&gt;
* The gateway can become a performance bottleneck&lt;br /&gt;
* The extra NIC may seem strange to end users, especially if it uses magic IP for the 2 ends of the tunnel&lt;br /&gt;
* The NAT aspect of the gateway could interfere with protocol features&lt;br /&gt;
* Security is limited to methods that can work with 1-way communication (UNIX/system security for NFS, workgroup security for CIFS)&lt;br /&gt;
&lt;br /&gt;
=== Flat Network ===&lt;br /&gt;
&lt;br /&gt;
Included for completeness, this is what Manila implements today. There will always be scenarios where the administrator is either doing something way more complicated that what we can imagine, or the administrator is happy with a simple flat network and minimal security. In this case, connectivity between the ultimate users of the storage and the backends is left up to somebody else, and Manila is only responsible for provisioning and exporting storage to a client without regard to what's on the other end.&lt;br /&gt;
&lt;br /&gt;
Advantages:&lt;br /&gt;
* It's very simple from an implementation standpoint (it's done)&lt;br /&gt;
* It allows compatibility with unanticipated future designs&lt;br /&gt;
* It may be the preferred approach for single tenant scenarios like private clouds&lt;br /&gt;
&lt;br /&gt;
Disadvantages:&lt;br /&gt;
* Cannot support multi-tenant scenarios like public cloud&lt;br /&gt;
&lt;br /&gt;
== Plugins ==&lt;br /&gt;
&lt;br /&gt;
Given the advantages and disadvantages of the different approaches above, it seems clear that no one approach will be ideal for all circumstances. I believe a plugin system is needed so that the administrator can choose what he wants to use in his own environment.&lt;br /&gt;
&lt;br /&gt;
= Security =&lt;br /&gt;
&lt;br /&gt;
As I mentioned in the network plumbing section, using filesystem security requires some configuration work up-front.&lt;br /&gt;
&lt;br /&gt;
In the of CIFS, the user needs to tell Manila what domain (active directory) the CIFS share should be part of, if any. The backend may need to create a new virtual storage controller and join it to the domain, which means the user needs to provide relevant information, such as DNS server IP, domain controller IP, domain administrator account name and password, etc. In theory this could be a one time operation, separate from the storage provisioning operation, but in the case where a tenant has 2 different domains and wants to provision into both of them, then individual provisioning requests need to either include all of the above details or a reference to a previously created object. In both cases, Manila will need to store the details so it can tell whether new requests can be placed on a controller that's already joined the domain, or whether a new controller needs to be set up.&lt;br /&gt;
&lt;br /&gt;
NFS has similar requirements, if Kerberos is used. The user needs to provide Manila with enough details that the backend can join the Kerberos and LDAP domains, which means IP addresses of those services, or DNS and hostnames for those services, as well as credentials for an administrative account so the controller can join the domains.&lt;br /&gt;
&lt;br /&gt;
= Comments =&lt;br /&gt;
== Caitlin Bestler ==&lt;br /&gt;
My analysis is similar, but structured a bit differently.&lt;br /&gt;
&lt;br /&gt;
There are three fundamental objectives that must be achieved by any mediation scheme:&lt;br /&gt;
* Disambiguation of User IDs (as well as Roles/Groups/etc.), Security Domain X UID 500 must never be confused with Security Domain Y UID 500.&lt;br /&gt;
* Restrict mounting of shares to being within Security Domains. All access to Security Domain X shares must be approved by a Security Domain X specified authentication server (probably LDAP or AD).&lt;br /&gt;
* Disallow cross-security domain access, even with forged mount handles. A would-be pirate within Security Domain X must not be able to access Security Domain Y file servers by just faking an IP address. It is not enough to have a Security Domain X login, the VM or port you are using must be enabled to access Security Domain X.&lt;br /&gt;
&lt;br /&gt;
The different solutions can be summarized as:&lt;br /&gt;
&lt;br /&gt;
* Network mediation: Each security domain is placed on an isolated logical network (whether by tunneling or VLANs). The NAS servers are expected to provide a virtual interface for each security domain network.&lt;br /&gt;
** Disambiguation of User identifiers is the responsibility of the virtual server. Manila does not care how the server appliance does this.&lt;br /&gt;
** A virtual server associated with Security Domain X can only export file shares owned by Security Domain X.&lt;br /&gt;
** Neutron will only allow ports that are admitted to Security Domain X to use that logical network.&lt;br /&gt;
** The NAS Client is in the Guest OS (or user space).&lt;br /&gt;
* Hypervisor-mediated with virtFS&lt;br /&gt;
** Virtual File System operations are serialized over the virtualization bus, so the file system is really running in the Hypervisor or a designated domain.&lt;br /&gt;
** This file system acts as a proxy for accessing the true storage servers.&lt;br /&gt;
** It must map Security Domain specific user identifiers to universal identifiers.&lt;br /&gt;
** It may only allow same-domain mounts.&lt;br /&gt;
** This requires adding functionality to the Guest. Therefore it cannot be the ''only'' solution.&lt;br /&gt;
* Hypervisor-mediated: with proxy&lt;br /&gt;
** The Hypervisor runs NAS proxies (either itself or in designated domains)&lt;br /&gt;
** A NAS client runs in each Guest (OS or user).&lt;br /&gt;
** The proxy otherwise must do the same translations as with the Hyerpvisor-mediated-virtFS solution.&lt;br /&gt;
** At worst case the Guest must be configured to access a different file server, therefore this can work without modifying Guest code (only guest configuration).&lt;br /&gt;
*** Transparent proxying can eliminate even that, but might not be worth the effort.&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Networking/Gateway_mediated&amp;diff=38530</id>
		<title>Manila/Networking/Gateway mediated</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Networking/Gateway_mediated&amp;diff=38530"/>
				<updated>2013-12-17T09:16:13Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: sanitize section levels&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hypervisor mediated storage access for NFS shares and Multi-tenancy =&lt;br /&gt;
&lt;br /&gt;
== Architecture  ==&lt;br /&gt;
This document outlines an approach to achieving multi-tenancy using Manila OpenStack and the architecture/design considerations wrt enabling Multi-tenancy in the cloud using this approach. This model is based on the  [[Manila_Networking#Hypervisor_Mediated|Hypervisor mediated approach to Manila Networking]]&lt;br /&gt;
&lt;br /&gt;
The approach taken is a hypervisor mediated one where the decision to allow tenant access to the intended Manila share is made in the hypervisor. Typically, each hypervisor can have multiple guest instances each of which is considered a tenant. The proposed design involves running a user-space NFS server on the hypervisor. Tenants rely on NFS clients to connect to this NFS server and consume any exported shares. The NFS server in turn is assumed to be capable enough, to talk to different storage backends and serve requests made by its clients. &lt;br /&gt;
&lt;br /&gt;
We propose to use nfs-ganesha[1][2] as the user-space NFS daemon in this architecture. This is based on the following:&lt;br /&gt;
nfs-ganesha is easily extensible to various filesystem backends and has a modular/plugin-based architecture. A plugin is commonly referred to as File System Abstraction Layer (FSAL) in NFS-Ganesha parlance. Currently, nfs-ganesha has support for a variety of FSALs including ones for CephFS, GlusterFS, Lustre, ZFS, VFS, GPFS etc. nfs-ganesha also supports various NFS protocol versions like NFSv2,v3,v4,v4.1,v4.2 and pNFS. This makes it ideal for future use-case extensibility and also from the point of view of accomodating the maximum possible filesystem backends, including any new vendor developed ones.&lt;br /&gt;
&lt;br /&gt;
When a mount request is received by the nfs-ganesha server, it checks whether the client/tenant is allowed to access the related export or share. Based on the NFS share ACL configurations, the exported share operation will succeed or fail. If the mount succeeds, all further operations performed from the client will succeed and Ganesha would route such requests to the storage backend through the corresponding filesystem FSAL. So tenant share separation is made possible based on NFS ACLs and access permissions. Further, nfs-ganesha also supports Kerberos based authentication in case Manila shares need to be exported and consumed across nodes in an Openstack compute cluster when nfs-ganesha would be mounted on each hypervisor in the cluster in Multi-head configuration.&lt;br /&gt;
&lt;br /&gt;
== Advantages: ==&lt;br /&gt;
&lt;br /&gt;
* Works with all guest operating systems that have a nfs client built in. Well standardized and widely available support.&lt;br /&gt;
* Does not require any VM/guest plugin installation or any Openstack components to be modified to work with this approach.&lt;br /&gt;
* Works across the majority of the prevalent filesystem backends and/or Storage Arrays without modifications.&lt;br /&gt;
* This approach most closely mirrors how guests interact with storage controllers in Cinder. The storage controller only needs to know about compute nodes and the hypervisor deals with the problem of presenting the storage to the guest.&lt;br /&gt;
* Security is enforced by the hypervisor. Backends need not support any security to protect tenant data from other tenants (or even enforce protection between instances of one tenant).&lt;br /&gt;
* Further tenant separation is based on share permissions based on NFS ACLs and authentication. This is easily enforced.&lt;br /&gt;
* No dependence or interaction with Neutron&lt;br /&gt;
* NFS server on the hypervisor performs caching. So not all requests from the instances need to be served by the storage layer. Thereby data access is sometimes faster, and the storage layer is less burdened. &lt;br /&gt;
* Being a user-space server, nfs-ganesha's cache-inode layer can grow arbitrarily large, limited mostly (only) by the underlying hardware. This supports greater scalability in terms of supporting larger number of compute instances and share operations/requests.&lt;br /&gt;
* Extensible to support other multi-tenant use-cases like share reservations, QoS requirements etc.&lt;br /&gt;
== Disadvantages:  ==&lt;br /&gt;
* Resources are consumed by nfs-ganesha as it runs on the hypervisor. Resource consumption by ganesha has been seen to be moderate across general workloads so we don't see this as a major impact to the overall architecture currently. Further tests need to be carried out to ascertain this impact if any.&lt;br /&gt;
* High Availability for tenant share access via nfs-ganesha could necessitate additional configuration and state maintenance. However, this availability support/infrastructure is mostly available as a separate Ganesha solution w.r.t. different filesystem backends.&lt;br /&gt;
&lt;br /&gt;
== References: ==&lt;br /&gt;
[1] https://github.com/nfs-ganesha/nfs-ganesha/wiki&lt;br /&gt;
&lt;br /&gt;
[2] https://forge.gluster.org/nfs-ganesha-and-glusterfs-integration/pages/Home&lt;br /&gt;
&lt;br /&gt;
[[File:Hypervisor-mediated.png]]&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:Hypervisor-mediated-manila-access-2.svg&amp;diff=37285</id>
		<title>File:Hypervisor-mediated-manila-access-2.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:Hypervisor-mediated-manila-access-2.svg&amp;diff=37285"/>
				<updated>2013-12-05T14:07:32Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: Chenk uploaded a new version of &amp;amp;quot;File:Hypervisor-mediated-manila-access-2.svg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hypervisor mediated manila access&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:Hypervisor-mediated-manila-access-2.svg&amp;diff=37270</id>
		<title>File:Hypervisor-mediated-manila-access-2.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:Hypervisor-mediated-manila-access-2.svg&amp;diff=37270"/>
				<updated>2013-12-05T12:53:33Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: Chenk uploaded a new version of &amp;amp;quot;File:Hypervisor-mediated-manila-access-2.svg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hypervisor mediated manila access&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:Hypervisor-mediated-manila-access-2.svg&amp;diff=37269</id>
		<title>File:Hypervisor-mediated-manila-access-2.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:Hypervisor-mediated-manila-access-2.svg&amp;diff=37269"/>
				<updated>2013-12-05T12:50:58Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: Chenk uploaded a new version of &amp;amp;quot;File:Hypervisor-mediated-manila-access-2.svg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hypervisor mediated manila access&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:Images_layouts-2.svg&amp;diff=37268</id>
		<title>File:Images layouts-2.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:Images_layouts-2.svg&amp;diff=37268"/>
				<updated>2013-12-05T12:47:33Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:Hypervisor-mediated-manila-access-2.svg&amp;diff=37267</id>
		<title>File:Hypervisor-mediated-manila-access-2.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:Hypervisor-mediated-manila-access-2.svg&amp;diff=37267"/>
				<updated>2013-12-05T12:20:19Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: Chenk uploaded a new version of &amp;amp;quot;File:Hypervisor-mediated-manila-access-2.svg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hypervisor mediated manila access&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:Hypervisor-mediated-manila-access-2.svg&amp;diff=37266</id>
		<title>File:Hypervisor-mediated-manila-access-2.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:Hypervisor-mediated-manila-access-2.svg&amp;diff=37266"/>
				<updated>2013-12-05T12:01:06Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: Hypervisor mediated manila access&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hypervisor mediated manila access&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/docs/Manila_Developer_Setup_Fedora19&amp;diff=36933</id>
		<title>Manila/docs/Manila Developer Setup Fedora19</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/docs/Manila_Developer_Setup_Fedora19&amp;diff=36933"/>
				<updated>2013-12-01T20:26:45Z</updated>
		
		<summary type="html">&lt;p&gt;Chenk: decrease header levels by one to avoid superfluous nesting (makes quite a difference in mobil view)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes how to install devstack with Manila support on a virtual machine.&lt;br /&gt;
&lt;br /&gt;
= Recommended VM requirements =&lt;br /&gt;
&lt;br /&gt;
* 4G RAM&lt;br /&gt;
* 20G of free disk space&lt;br /&gt;
&lt;br /&gt;
The instructions were tested on a Fedora 19 (f19) VM. However, the following notes should work with a Ubuntu VM as well, but some of the instructions might not be required by Ubuntu users. So whenever the notes are suspected to be Fedora specific they'd be stated as being so.&lt;br /&gt;
&lt;br /&gt;
= Installing DevStack =&lt;br /&gt;
&lt;br /&gt;
Below is the DevStack repo with Manila integrated. Besides installing other OpenStack services, it pulls and installs Manila from, https://github.com/stackforge/manila, the current upto-date Manila repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ git clone git@github.com:bswartz/devstack.git&lt;br /&gt;
$ cd devstack&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: Very recently, the Manila repo has been integrated with DevStack master, which you could also use. Hence, some of the below instructions might no longer be relevant. Expect appropriate changes in instructions soon.&lt;br /&gt;
&lt;br /&gt;
You might need to make the following changes. The change in ''./lib/manila'' is needed if you use F19. Otherwise, the ''stack.sh'' script, which installs the OpenStack services, would install the manila scripts in ''/usr/bin'', but later try to execute the manila scripts from ''/usr/local/bin''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;diff --git a/lib/manila b/lib/manila&lt;br /&gt;
index abd0158..7f75ebc 100644&lt;br /&gt;
--- a/lib/manila&lt;br /&gt;
+++ b/lib/manila&lt;br /&gt;
@@ -48,7 +48,7 @@ MANILA_SERVICE_PROTOCOL=${MANILA_SERVICE_PROTOCOLS&lt;br /&gt;
 if [[ -d $MANILA_DIR/bin ]]; then&lt;br /&gt;
     MANILA_BIN_DIR=$MANILA_DIR/bin&lt;br /&gt;
 else&lt;br /&gt;
-    MANILA_BIN_DIR=/usr/local/bin&lt;br /&gt;
+    MANILA_BIN_DIR=/usr/bin&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 SHARE_GROUP=${SHARE_GROUPtack-shares}&lt;br /&gt;
@@ -456,4 +456,4 @@ function stop_manila() {&lt;br /&gt;
 }&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The changes in localrc:&lt;br /&gt;
&lt;br /&gt;
* The change in password of Rabbit service to 'guest' is needed if you use F19. A fresh installation of rabbitmq creates a user 'guest' with the password 'guest'. And for some reason, DevStack fails to set the password of the user 'guest' as desired by the user.&lt;br /&gt;
* Extra variables can be set for logging the screens of the OpenStack services running. This is useful especially because the default screens have a very limited scrollback buffer.&lt;br /&gt;
* The size of the backing file for a Manila-LVM share can be reduced from 8G to 2G.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;diff --git a/localrc b/localrc&lt;br /&gt;
index 05ea5cd..4474425 100644&lt;br /&gt;
--- a/localrc&lt;br /&gt;
+++ b/localrc&lt;br /&gt;
@@ -1,9 +1,15 @@&lt;br /&gt;
 DATABASE_PASSWORD=rengen&lt;br /&gt;
-RABBIT_PASSWORD=rengen&lt;br /&gt;
+RABBIT_PASSWORD=guest&lt;br /&gt;
 SERVICE_TOKEN=rengen&lt;br /&gt;
 SERVICE_PASSWORD=rengen&lt;br /&gt;
 ADMIN_PASSWORD=rengen&lt;br /&gt;
&lt;br /&gt;
+# Enable Logging&lt;br /&gt;
+LOGFILE=/opt/stack/logs/stack.sh.log&lt;br /&gt;
+VERBOSE=True&lt;br /&gt;
+LOG_COLOR=True&lt;br /&gt;
+SCREEN_LOGDIR=/opt/stack/logs&lt;br /&gt;
+&lt;br /&gt;
&lt;br /&gt;
@@ -66,7 +72,7 @@ MANILA_SERVICE_PORT_INT=18776&lt;br /&gt;
 &lt;br /&gt;
 VOLUME_BACKING_FILE_SIZE=${VOLUME_BACKING_FILE_SIZE:-1048M}&lt;br /&gt;
 &lt;br /&gt;
-SHARE_BACKING_FILE_SIZE=${SHARE_BACKING_FILE_SIZE:-8400M}&lt;br /&gt;
+SHARE_BACKING_FILE_SIZE=${SHARE_BACKING_FILE_SIZE:-2048M}&lt;br /&gt;
 MANILA_SECURE_DELETE=$CINDER_SECURE_DELETE&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Run ''stack.sh''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ./stack.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the above script sets SELinux to Permissive mode for Fedora users. This setting however doesn't survive a reboot. For a permanent change in SELinux setting, you need to edit the ''/etc/sysconfig/selinux'' file to be as below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# This file controls the state of SELinux on the system.&lt;br /&gt;
# SELINUX= can take one of these three values:&lt;br /&gt;
#     enforcing - SELinux security policy is enforced.&lt;br /&gt;
#     permissive - SELinux prints warnings instead of enforcing.&lt;br /&gt;
#     disabled - No SELinux policy is loaded.&lt;br /&gt;
SELINUX=permissive&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check the status of SELinux:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ getenforce&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Launching a Guest instance using Nova =&lt;br /&gt;
&lt;br /&gt;
Make sure that the services, httpd, rabbitmq-server (or some other AMQP), mysqld (db) are running every time you begin (e.g. after a sytem reboot) using OpenStack. For F19, you could do this by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ systemctl status rabbitmq-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
If they aren't running you should get them up and running:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# systemctl restart rabbitmq-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
And also don't forget to check whether SELinux is set to Permissive mode :).&lt;br /&gt;
&lt;br /&gt;
Now you need to setup the keystone login credentials before you can use the CLI of the various OpenStack services. This can be easily done by sourcing ''openrc'' file with a user and a tenant name respectively. And ''stack.sh'' already has created users (admin and demo) and tenants (admin and demo), which you could use. So, you could do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ source openrc admin admin&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bring up (if you rebooted after running ''stack.sh'') and interact with the various OpenStack services by running ''rejoin-stack.sh'' script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ./rejoin-stack.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
You'd need Nova guests to test if the Manila shares are accessible. And it makes sense that you use a light weight image (CirrOS) to launch an instance. One such lightweight image with nfs kernel support, nfs-utils, rpcbind and strace was put together by [https://launchpad.net/~chenk Csaba Henk]: https://mega.co.nz/#!B91VUA6Z!eNB2BSW4p1o8lRqaPeaIek4g_J1LJL_SY2OymVnurlc&lt;br /&gt;
&lt;br /&gt;
Create a glance-image using the image downloaded from the above link:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ glance image-create --name=&amp;amp;quot;Cirros 0.3.1&amp;amp;quot; --disk-format=qcow2 \&lt;br /&gt;
 --container-format bare &amp;amp;lt; cirros-git-disk.qcow2&amp;lt;/pre&amp;gt;&lt;br /&gt;
List the glance images, and check if available:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ glance image-list&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add a keypair list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ nova keypair-add --pub_key ~/.ssh/id_rsa.pub mykey&amp;lt;/pre&amp;gt;&lt;br /&gt;
Set network rules to allow ssh and ping access to the guest VM:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
$ nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&amp;lt;/pre&amp;gt;&lt;br /&gt;
Boot a nova instance. Please use the image-id of the downloaded image from glance image-list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ nova boot --flavor m1.tiny --image 00aa37a3-0bec-4140-bbf1-617fc3b3da63 \&lt;br /&gt;
  --key_name mykey --security_group default myvm0&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check the status of the guest instance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ nova list&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check by ssh-ing to the VM. Password of the guest VM's cirros is &amp;lt;code&amp;gt;cubswin:)&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ssh cirros@&amp;amp;lt;the ip of the vm, usually a private IP, unless setup&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Inside the guest vm. If you need to be root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo -s&lt;br /&gt;
$ id&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Creating a Manila LVM NFS share =&lt;br /&gt;
&lt;br /&gt;
Currently, Manila doesn't support multi-tenancy (the code to do so is under review as of today), and the networking model is the simple FlatNetwork model. For more info, see&lt;br /&gt;
&lt;br /&gt;
* https://wiki.openstack.org/wiki/Shares_Service&lt;br /&gt;
* https://wiki.openstack.org/wiki/Manila_Networking&lt;br /&gt;
&lt;br /&gt;
Check if the Manila share driver and it's helpers are as follows, else set them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat /etc/manila/manila.conf | grep share_driver&lt;br /&gt;
share_driver = manila.share.drivers.lvm.LVMShareDriver&lt;br /&gt;
$ cat /etc/manila/manila.conf | grep share_lvm_helpers&lt;br /&gt;
share_lvm_helpers = CIFS=manila.share.drivers.lvm.CIFSHelper,NFS=manila.share.drivers.lvm.NFSHelper&amp;lt;/pre&amp;gt;&lt;br /&gt;
Creating a 1G LVM Manila NFS share by carving 1G logical volume from a volume group, which is by default stack-shares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ manila create --name myshare0 NFS 1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check if the share is available:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ manila list&amp;lt;/pre&amp;gt;&lt;br /&gt;
Allow the share to be accessed by the running instance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ manila allow-access &amp;amp;lt;share-id&amp;amp;gt; ip &amp;amp;lt;instance-id&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should now be able to ssh into your guest VM, and check for the NFS share:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ showmount -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
If all's well, you can mount the NFS share on your guest. If not, the most probable reason could be that the firewall rules setup by Nova are working against you. The dirty way to work around this problem would be to stop and disable firewall daemon in your host VM, and restart the Nova services.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# systemctl stop firewalld&lt;br /&gt;
# systemctl disable firewalld&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chenk</name></author>	</entry>

	</feed>