/srv/irclogs.ubuntu.com/2011/03/23/#ubuntu-classroom.txt

hungtranhello01:02
=== Omega is now known as bootri
=== james is now known as Guest60011
=== r is now known as Guest20791
=== _LibertyZero is now known as LibertyZero
=== msnsachin12 is now known as msnsachin
=== msnsachin12 is now known as msnsachin
sadeedtechon10:55
Siri_hello10:55
sadeedtechhi10:56
Siri_can you tell me what's going on here10:56
Siri_i don't find kim010:56
sadeedtechso do I not find him, may timing10:57
daiveras you see he is not online yet10:57
Siri_ohh...this was supposed to start at 4 right10:58
sadeedtechI think the event is three hours from now11:00
sadeedtechinfo11:01
sadeedtechhelp11:01
=== smspillaz|zzz is now known as smspillaz
=== ziviani is now known as JRBeer
anebihi guys15:02
JoeyIhi15:06
ChrisRutHi15:06
=== sadeeb is now known as olutayo
=== olutayo is now known as sadeeb
nateais there a session on GlusterFS happening right now?15:39
nateai didn't get the timezone conversion right, so i'm coming late to the party :/15:40
EvilPhoenixnatea:  what timezone are you?15:41
nateaEvilPhoenix: EST15:41
EvilPhoenixif you read the schedule, it starts at 4PM15:41
EvilPhoenixoh wait15:41
EvilPhoenixthat's GMT15:41
* EvilPhoenix does the math15:41
EvilPhoenixUTC... -0400...15:41
EvilPhoenixoh15:42
EvilPhoenix12PMish15:42
nateaoh, it looks like it's not until 13:0015:42
nateaaccording to http://www.timezoneconverter.com/15:42
natea"17.00 UTC Scaling shared-storage web apps in the cloud with Ubuntu & GlusterFS — semiosis"15:42
natea17.00 UTC -> 13.00 EST15:43
EvilPhoenixgrah my system isnt displaying times right15:43
* EvilPhoenix shoots his system15:43
EvilPhoenix13:00 is about 1PM15:43
* EvilPhoenix shall return after destroying his system15:43
kim0Howdy16:00
kim0Hello everyone, welcome to the very first Ubuntu Cloud Days16:01
ttxyay!16:01
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Cloud Days - Current Session: Cloud Computing 101, Ask your questions - Instructors: kim0
* ttx attends two conferences at once.16:01
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/03/23/%23ubuntu-classroom.html following the conclusion of the session.16:01
kim0So again, good morning, good afternoon and good evening wherever you are16:02
kim0Please be sure you're joined to this channel plus16:02
kim0#ubuntu-classroom-chat : For Questions16:02
kim0In case you would like to ask a question16:03
kim0please start it with "QUESTION: <question goes here>16:03
kim0and write it down in the #ubuntu-classroom-chat channels16:04
kim0This session is mostly about taking questions and making sure everyone is well seated :)16:04
kim0Seems like I have a question already16:04
ClassBotEvilPhoenix asked: I think this could be the start of it.  Could you give a brief explanation of what "Cloud Computing" is defined as?16:05
kim0Hi EvilPhoenix .. Good question indeed16:05
kim0Trying to answer your question .. I will begin by saying16:06
kim0Cloud has so many different definitions already :)16:06
kim0Almost all companies by bent it to mean whatever product they're selling16:06
kim0the term has really been abused16:06
kim0The are also various definitions by institutions like NIST and others16:07
kim0since there is no one single true definition .. I'll lay down some properties16:07
kim0that almost everyone agrees should be present in a "cloud"16:07
kim01- Pay per use .. Cloud are online resources that can be characterized by "pay per use"16:08
kim0you only pay for the resources that you need .. the storage you consume16:08
kim0the CPU/Memory compute capacity that you are using ..etc16:08
kim0You never really (or should never) pay in advance .. (just in case you need that resource)16:09
kim02- Instant scalability: Cloud solutions should be instantly scalable16:09
kim0that is .. with one api call (that's one command, or a click of a button for non programmers)16:09
kim0you should be able to allocate more resources16:09
kim0Clouds convey the feeling of inifinite scale .. of course in reality it's not truly infinite .. but it's large enough16:10
kim03- API programmability .. Most cloud solutions are going to have an API .. an API is a programmatic way to control your resources16:11
kim0Taking a prime example .. The largest commercial compute and storage cloud today is Amazon's AWS cloud16:11
kim0With Amazon's cloud, with an api call (or running a command)16:11
kim0you can instantly allocate "servers"16:12
kim0so it's got an API interface16:12
kim0it's scalable .. since you can always add more servers (or S3 storage) should you want to16:12
kim0and you only pay for the consumed CPU hours .. or gigabytes of storage16:12
kim0Clouds are usually split up by their type as well16:13
kim0IaaS , PaaS and SaaS16:13
kim0let me quickly comment on those types16:13
kim0IaaS : Infrastructure as a Service16:13
kim0This basically means you get "infrastructure" components (that is servers, storage space, networking ...etc" as as service ..16:14
kim0You use those to build your own cloud or application16:14
kim0PaaS : Moves a little up the value stack16:14
kim0It provides a complete development environment as a service16:14
kim0so you basically upload some code .. and without needing to worry about servers or networks/switches or storage ..etc16:15
kim0your application just runs on the "cloud" .. is scalable, is redundant16:15
kim0someone else (the PaaS provider) did that work for you16:15
kim0Examples of PaaS would be Google's AppEngine .. salesforce.com or others16:16
kim0The last type is SaaS : Software as a Service16:16
kim0This basically means providing a full complete application, that you are directly using in the cloud16:16
kim0examples of that would be facebook, gmail, twitter ..etc16:16
kim0Those are "applications" if you come to think of it .. more so than the notion of webpages16:17
* kim0 checks if he has more questions 16:17
ClassBotBluesKaj asked: ok then what Ubuntu Cloud about ?16:17
kim0Hi BluesKaj16:18
kim0Very good question as well16:18
kim0So Amazon's cloud is a very popular IaaS cloud. However, some people are not totally happy with the fact that they'd upload their data to amazon's datacenters16:19
kim0some enterprises or ISPs .. would like to utilize the improved economics of the cloud model16:20
kim0however still keeping their data and servers in-house (whatever that means to them)16:20
kim0In order to build a cloud that competes with Amazon's cloud16:20
kim0you need various software components16:20
kim0Ubuntu packages, integrates and makes available the best of breed open-source software16:21
kim0that enables you to build and operate your own cloud should you want to16:21
kim0In the upcoming 11.04 natty release16:21
kim0Ubuntu packages two open-source complete cloud stacks16:21
kim0those would be16:21
kim0- Ubuntu Enterprise Cloud : An Ubuntu integrated and polished cloud stack based on the popular Eucalyptus stack16:22
kim0- OpenStack : A new opensource cloud stack that's gaining a lot of popularity16:22
kim0Actually we have dedicated sessions for each of those cloud stacks!16:22
kim0An interesting fact .. is that UEC and OpenStack both allow you to expose an API that is the equivalent of Amazon's API16:23
kim0that means you can use the same management tools to control both the public (Amazon's ) cloud and your own private one!16:23
kim0This is also great for providers wanting to run their own clouds16:24
kim0so that was an overview of the cloud stacks available to enable16:24
kim0you to build your own cloud envrionment16:24
kim0Other than that .. and to fully answer the question of "What is ubuntu cloud" .. I need to add a few more points16:25
kim0Ubuntu makes available official Ubuntu images that run on the Amazon cloud as well16:25
kim0You can check them out (as they're regularly updated) on http://cloud.ubuntu.com/ami/16:25
kim0you basically search for what you want, like (maverick 64 us-east) pick the ami-id16:26
kim0and launch that16:26
kim0Also Canonical makes available Landscape a cloud management tool .. you can check it out at https://landscape.canonical.com/16:27
kim0Also, Ubuntu is soon unleashing cloud management and orchestration tool called "ensemble"16:27
kim0that is going to revolutionize cloud deployments and management .. it's still in early tech-preview stage16:28
kim0however we're having an ensemble session and demo today16:28
kim0I think that mostly covers a broad definitions of ubuntu and cloud16:28
ClassBotKruptein asked: so dropbox isn't cloud related? as you don't have to pay for it (basic)16:28
kim0Hi Kruptein16:29
kim0Well .. dropbox is cloud storage indeed16:29
kim0I meant that with cloud .. when you want to grow you pay for what you used/need16:29
kim0as opposed to buying a 1TB disk that lays on your desk so that when you need the capacity it'll be available for you16:30
=== cmagina is now known as cmagina-lunch
kim0with dropbox you pay for what you use .. although I believe they only allow payment in coarse packages16:30
kim0as opposed to Amazon's S3 which charges you per GB of storage per month16:30
kim0which is a more fine grained model16:31
ClassBotBluesKaj asked: ok then what is Ubuntu Cloud about ?16:31
kim0So I believe we covered that16:31
kim0To quickly recap16:31
kim0- Building your own private cloud : UEC/Eucalyptus or OpenStack16:31
kim0- Running over the Public Amazon Cloud : Official Ubuntu Server images http://cloud.ubuntu.com/ami/16:32
kim0- Systems Management tools : https://landscape.canonical.com/16:32
kim0- Infrastructure automation : Ensemble (tech-preview)16:32
kim0Again all of those tools and technologies (except for landscape) are having their own sessions that you'll enjoy :)16:33
kim0Let me not forget as well about "Ubuntu ONE"16:34
kim0a personal storage cloud (very similar to dropbox)16:34
kim0Check it out at https://one.ubuntu.com/16:34
ClassBotpopey asked: Should your average end-user care about Ubuntu cloud? If so, why? If not, what do we say to end users when they see all this promotion of Ubuntu cloud stuff?16:34
kim0Hi popey16:34
kim0Great question16:35
kim0It really depends on your point of view16:35
kim0The usual-suspects to care about "cloud" stuff are going to be sys-admins, devops, IT professionals .. people who care about server environments and such .. However!16:36
kim0If you ask me, yes non IT pros should care as well16:36
kim0because the computing model is quickly shifting to a cloud model16:37
kim0that is .. instead of you buying a pc, loading it with your personal applications and settings16:37
kim0and being a sysadmin for yourself .. handling backups .. troubleshooting, software upgrades ..etc16:37
kim0the world is shifting into an ipad/iphone/thin-client/mobile devices world16:38
kim0where your data lives on a cloud16:38
kim0is accessible by a wide varierty of tools16:38
kim0and all tools sync up together16:38
kim0obviously the point of interest is going to be different, however it remains that the cloud touches all of us16:39
ClassBotcdbs asked: The Clous world is buzzing about OpenStack. Natty will include support for OpenStack along with Eucalyptus. Once OpenStack Nova becomes stable enough (should happen soon, by May) then will Ubuntu begin recommending OpenStack for its cloud offerings?16:39
kim0Hi cdbs16:40
kim0Seems you're on top of things hehe I can't really claim to foresee the future. Ubuntu is and has always aimed at providing the best of class open-source cloud technologies and software16:40
kim0As it stands, UEC product is based on Eucalyptus bec it is a mature product16:41
kim0however since openstack is rapidly maturing, it has been packaged and made available as well16:41
kim0I am confident Ubuntu will continue to make available all mature choices of best of breed software16:42
ClassBotYuvi_ asked: you can differentiate between public cloud and private cloud?16:42
kim0Hi Yuvi_16:42
kim0Well, yeah I guess16:42
kim0Public clouds are cloud operated by an entity you don't control16:43
kim0and that provide services to multiple other tenants16:43
kim0examples would be Amazon cloud, rackspace, go-grid, terremark ...etc16:43
kim0A private cloud, is a cloud that probably runs behind your firewall on your own servers16:43
kim0and that you can control, i.e. is operated by IT people you have direct influence upon16:44
ClassBotat141am asked: Is the demo open to all for ensemble, if so when and where?16:44
kim0Hi at141am16:44
kim0Yes absolutely!16:44
kim0The Ensemble session is today in less than a couple of hours16:45
kim0right here in this same channel16:45
kim0The session leader is probably going to be copy/past'ing text so that you can follow up the demo16:46
kim0I'm not really sure how it would go .. but I'm sure it's gonna be loads of fun16:46
ClassBotmarenostrum asked: What does "Ubuntu One" have to do something with "cloud" concept?16:46
kim0Hi marenostrum16:46
kim0Ubuntu ONE is a personal cloud service16:47
kim0It is designed for end-users .. that is non IT pros16:47
kim0It provides services to sync your files and folders to the cloud16:47
kim0sharing them to other people16:47
kim0not only that .. but also16:47
kim0sync's your "notes" across multiple machines16:47
kim0your music16:47
kim0Bookmarks16:47
kim0I think soon it might sync application settings and the apps installed16:48
kim0so that when you get a new Ubuntu machines .. it installs all your applications, applies all settings, syncs your data/notes/bookmarks ..etc16:48
kim0that would be lovely indeed .. I'm not sure if it can do all that just yet thought16:48
kim0though*16:48
ClassBotsveiss asked: do the official Ubuntu EC2 images receive updates? Specifically kernel updates, which are a bit of a pain to deal with via apt-get on boot.16:49
* kim0 trying to answer questions quickly :)16:49
kim0Hi sveiss16:49
kim0The answer is absolutely YES16:49
kim0they do receive regular updates16:49
kim0of course you can always apt-get upgrade them any way16:49
kim0the one potential pain point .. is the one you have mentioned "kernel upgrades"16:50
kim0for that .. I've some good news16:50
kim0Newer AMIs are designed to use pv-grub16:50
kim0which is a method exposed by Amazon to load the kernel from inside the image16:50
kim0which means .. you can now apt-get upgrade your kernel .. and very simply reboot into it16:51
ClassBotThere are 10 minutes remaining in the current session.16:51
kim0if you need to know which exact version switched to pvgrub .. check in at #ubuntu-cloud16:51
ClassBotIdleOne asked: Repost for AndrewMC :What would be the benifits of using the "cloud" instead of, say  a dedicated server?16:51
kim0Hi IdleOne16:52
kim0the main benefits is really16:52
kim0- Pay per use .. I might need ten servers today .. but only one tomorrow .. cloud allows that .. dedicated servers don't (you'd have to buy 10 servers all the time)16:52
kim0- flexibility .. If we web application gets slashdotted .. and the load is too high .. within a few seconds .. I can spin up 20 extra cloud servers to handle the load16:53
kim0- Also .. since almost all clouds provide an extensive API16:53
kim0it really helps with IT automation .. spin up servers, assign them IPs, attach storage to them, mount a load balancer on top16:54
kim0all by running a script .. not by running around connection cables :)16:54
ClassBotYuvi_ asked: What is hybrid cloud? Under which scenario we can use that16:54
kim0A hybrid cloud is a mix of public + private16:54
kim0a typical use case would be16:55
kim0you prefer running everything on a private cloud that you own and operate16:55
kim0*however* should the incoming load by too high16:55
kim0like your application was slashdotted16:55
kim0you would dynamically "expand" to using a public cloud like amazon/rackspace16:56
kim0to take some heat for you .. to lessen the load on your servers16:56
ClassBotThere are 5 minutes remaining in the current session.16:56
kim0You can pull off something like that today with UEC and some smart scripts16:56
ClassBotchadadavis asked: what advantage does a private cloud provide, vs a traditional server cluster, assuming that then the sysadmin work is not outsourced?16:56
kim0running out of time ..16:56
kim0trying to quickly answer16:57
kim0well basically it's the same concept of public cloud16:57
kim0Benefits would be16:57
kim0- Complete infrastructure automation16:57
kim0- Enabling "teams" to handle their own needs .. a team would spin up/down servers according to their needs16:57
kim0lessening the load on IT staff16:57
kim0also .. "pooling" of IT servers into one private cloud16:58
kim0means providing a better service to everyone16:58
kim0since everyone can use some of the resources when they need it16:58
kim0so in short .. pooling, self service, low overhead, spin up/down16:58
kim0Great16:59
kim0Seems like I did manage to bust all questions :)16:59
kim0If anyone would like to get a hold of me afterwards16:59
kim0I am always hanging out in #ubuntu-cloud16:59
kim0you can ping me any time and I will get back to you once I can17:00
kim0The next session is by semiosis17:00
kim0o/17:00
=== cmagina-lunch is now known as cmagina
kim0Using gluster to scale .. very intersting stuff!17:00
kim0I love scalable file systems :)17:00
semiosisThanks kim017:00
semiosisHello everyone17:00
semiosisThis Ubuntu Cloud Days session is about scaling legacy web applications with shared-storage requirements in the cloud.17:01
semiosisI should mention up front that I'm neither an official nor an expert, I don't work for Amazon/AWS, Canonical, Gluster, Puppet Labs, or any other software company.17:01
semiosisI'm just a linux sysadmin who appreciates their work and wanted to give back to the community.17:01
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Cloud Days - Current Session: Scaling shared-storage web apps in the cloud with Ubuntu & GlusterFS - Instructors: semiosis
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/03/23/%23ubuntu-classroom.html following the conclusion of the session.17:01
semiosisMy interest is in rapidly developing a custom application hosting platform in the cloud.  I'd like to avoid issues of application design by assuming that one is already running and can't be overhauled to take advantage of web storage services.17:01
semiosisI'll follow the example of migrating a web site powered by several web servers and a common NFS server from a dedicated hosting environment to the cloud.  In fact this is something I've been working on lately, as I think others are as well.17:02
semiosisI invite you to ask questions throughout the session.  I had a lot of questions when I began working on this problem, but finding answers was very time-consuming and sometimes impossible.17:02
semiosisMy background is in Linux system administration in dedicated servers & network appliances, and I just started using EC2 six months ago.  I'll try to keep my introduction at a high level, and assume some familiarity with standard Linux command line tools and basic shell scripting & networking concepts, and the AWS Console.17:02
semiosisSome of the advanced operations will also require euca2ools or AWS command line tools (or the API) because they're not available in the AWS Console.17:02
semiosisCloud infrastructure and configuration automation are powerful tools, and recent developments have brought them within reach of a much wider audience.  It is easier than ever for Linux admins who are not software developers to get started running applications in the cloud.17:03
semiosisI've standardized my platform on Ubuntu 10.10 in Amazon EC2, using GlusterFS to replace a dedicated NFS server, and CloudInit & Puppet to automate system provisioning and maintenance.17:03
semiosisGlusterFS has been around for a few years, and its major recent development (released in 3.1) is the Elastic Volume Manager, a command-line management console for the storage cluster.  This utility controls the entire storage cluster, taking care of server setup and volume configuration management on servers & clients.17:04
semiosisBefore the EVM a sysadmin would need to tightly manage the inner details of configuration files on all nodes, now that burden has been lifted enabling management of large clusters without requiring complex configuration management tools.  Another noteworthy recent development in GlusterFS is the ability to add storage capacity and performance (independently if  necessary) while the cluster is online and in use.17:04
semiosisI'll spend the rest of the session talking about providing reliable shared-storage service on EC2 with GlusterFS, and identifying key issues that I've encountered so far.  I'd also be happy to take questions generally about using Ubuntu, CloudInit, and Puppet in EC2.  Let's begin.17:04
semiosisThere are two types of storage in EC2, ephemeral (instance-store) and EBS.  There are many benefits to EBS: durability, portability (within an AZ), easy snapshot & restore, and 1TB volumes; the drawback of EBS is occasionally high latency.17:05
semiosisEphemeral storage doesn't have those features, but it does provide more consistent latency, so it's better suited to certain workloads.17:05
semiosisI use EBS for archival and instance-store for temporary file storage.  And I can't recommend enough the importance of high-level application performance testing to determine which is best suited for your application.17:05
semiosisGlusterFS is an open source scale-out filesystem.  It's developed primarily by Gluster and has a large and diverse user community.  I use GlusterFS on Ubuntu in EC2 to power a web service.17:05
semiosisWhat I want to talk about today is my experience setting up and maintaining GlusterFS in this context.17:06
semiosisFirst I'll introduce glusterfs architecture and terminology.  Second we'll go through some typical cloud deployments, using instance-store and EBS for backend storage, and considering performance and reliability characteristics along the way.17:06
semiosisI'll end the discussion then with some details about performance and reliability testing and take your questions.17:06
semiosisI think some platform details are in order before we begin.17:07
semiosisI use the Ubuntu 10.10 EC2 AMIs for both 32-bit and 64-bit EC2 instances that were released in January 2011.  You can find these AMIs at the Ubuntu Cloud Portal AMI locator, http://cloud.ubuntu.com/ami/.17:07
semiosisI configure my instances by providing user-data that cloud-init uses to bootstrap puppet, which handles the rest of the installation.  Puppet configures my whole software stack on every system except for the glusterfs server daemon, which I manage with the Elastic Volume Manager (gluster command.)17:07
semiosisI've deployed and tested several iterations of my platform using this two-stage process and would be happy to take questions on any of these technologies.17:07
semiosisUnfortunately the latest version of glusterfs, 3.1.3, is not available in the Ubuntu repositories.  There is a 3.0 series package but I would recommend against using it.17:07
semiosisI use a custom package from my PPA which is derived from the Debian Sid source package, with some metadata changes that enable the new features in 3.1, my Launchpad PPA's location is ppa:semiosis/ppa.17:08
semiosisGluster also provides a binary deb package for Ubuntu, which has been more rigorously tested than mine.  You can find the official downloads here: http://download.gluster.com/pub/gluster/glusterfs/LATEST/17:08
semiosisYou can also download and compile the latest source code yourself from Github here:  https://github.com/gluster/glusterfs17:08
semiosisNow I'd like to begin with a quick introduction to GlusterFS 3.1 architecture and terminology.17:08
ClassBotEvilPhoenix asked: repost for marktma: any consideration for using Chef instead of Puppet?17:09
semiosisi chose puppet because it seemed to be best integrated with cloud-init, it's mature, and has a large user community17:09
ClassBotkim0 asked: Could you please mention a little intro about cloud-init17:10
semiosisCloudInit bootstraps and can also configure cloud instances.  This enables a sysadmin to use the standard AMI for different purposes, without having to build a custom AMI or rebundle to make changes.17:11
semiosisCloudInit takes care of setting the system hostname, installing the master SSH key and evaluating the userdata from EC2 metadata.  That last part, evaluating the userdata, is the most interesting.17:11
semiosisIt allows the sysadmin to supply a brief configuration file (called cloud-config), shell script, upstart job, python code, or a set of files or URLs containing those, which will be evaluated on first boot to customize the system.17:11
semiosisCloudInit even has built-in support for bootstrapping Puppet agents, which as I mentioned was a major deciding factor for me17:12
semiosisNow getting back to glusterfs terminology and architecture...17:13
semiosisOf course there are servers and there are clients.  With version 3.1 there came the option to use NFS clients to connect to glusterfs servers in addition to the native glusterfs client based on FUSE.17:13
semiosisMost of this discussion will be about using native glusterfs clients, but we'll revisit NFS clients briefly at the end if theres time.  I havent use the NFS capability myself because I think that the FUSE client's "client-side" replication is better suited to my application17:13
semiosisServers are setup in glusterfs 3.1 using the Elastic Volume Manager, or gluster command.  It offers an interactive shell as well as a single-executable command line interface.17:13
semiosis In glusterfs, servers are called peers, and peers are joined into (trusted storage) pools.  Peers have bricks, which are just directories local to the server.  Ideally each brick is its own dedicated filesystem, usually mounted under /bricks.17:14
ClassBotnatea asked: Given the occasional high latency of EBS, do you recommend it for storing database files, for instance PostgreSQL?17:14
semiosismy focus is hosting files for web, not database backend storage.  people do use glusterfs for both, but I haven't evaluated it in the context of database-type workloads, YMMV.17:15
semiosisas for performance, I'll try to get to that in the examples coming up17:15
ClassBotnatea asked: Can you briefly explain the differences between GlusterFS and NFS and why I would choose one over the other?17:16
semiosissimply put, NFS is limited to single-server capacit, performance and reliability, while glusterfs is a scale out filesystem able to exceed the performance and/or capacity of a single server (independently) and also provides server-level redundancy17:17
semiosisthere are some advanced features NFS has that glusterfs does not yet support (UID mapping, quotas, etc.) so please consider that when evaluating your options17:18
semiosisGlusterfs uses a modular architecture, in which “translators” are stacked in the server to export bricks over the network, and in clients to connect the mount point to bricks over the network.  These translators are automatically stacked and configured by the Elastic Volume Manager when creating volumes (under /etc/glusterd/vols).17:18
semiosisA client translator stack is also created and distributed to the peers which clients retrieve at mount-time.   These translator stacks, called Volume Files (volfile) are replicated between all peers in the pool.17:18
semiosisA client can retrieve any volume file from any peer, which it then uses to connect to directly to that volume's bricks.  Every peer can manage its own and every other peer's volumes, it doesn't even need to export any bricks.17:19
semiosisThere are two translators of primary importance: Distribute and Replicate.  These are used to create distributed or replicated, or distributed-replicated volumes.17:19
semiosisIn the glusterfs 3.1 native architecture, servers export bricks to clients, and clients handle all file replication and distribution across the bricks.17:19
semiosisAll volumes can be considered distributed, even those with only one brick, because the distribution factor can be increased at any time without interrupting access (through the add-brick command).17:19
semiosisThe replication factor however can not be changed (data needs to be copied into a new volume).17:19
semiosisIn general, glusterfs volumes can be visualized as a table of bricks, with replication between columns, and distribution over rows.17:19
semiosisSo a volume with replication factor N would have N columns, and bricks must be added in sets (rows) of N at a time.17:20
semiosisFor example, when a file is written, the client first figures out which replication set the file should be distributed to (using the Elastic Hash Algorithm) then writes the file to all bricks in that set.17:20
semiosisSome final introductory notes... First as a rule nothing should ever touch the bricks directly, all access should go through the client mount point.17:20
semiosisSecond, all bricks should be the same size, which is easy with using dedicated instance-store or EBS bricks.17:20
semiosisThird, files are stored whole on a brick, so not only can't volumes store files larger than a brick, but bricks should be orders of magnitude larger than files in order to get good distribution.17:20
semiosisNow I'd like to talk for a minute about compiling glusterfs from source on Ubuntu.  This is necessary if one wants to use glusterfs on a 32-bit system, since Gluster only provides official packages for 64-bit.17:21
semiosis(as a side note, the packages in my PPA are built for 32-bit, but they are largely untested, i have only begun testing the 32 bit builds myself yesterday, and although it's going well so far, YMMV)17:21
semiosisCompiling glusterfs is made very easy by the use of standard tools.17:22
semiosis First, some required packages need to be installed, these are: gnulib, flex, byacc, gawk, libattr1-dev, libreadline-dev, libfuse-dev, and libibverbs-dev.17:22
semiosisAfter installing these packages you can untar the source tarball and run the usual “./configure; make; make install” sequence to build & install the program.17:22
semiosisBy default, this will install most of the files under /usr/local, with the notable exceptions of the initscript placed in /etc/init.d/glusterd, the client mount script placed in /sbin/mount.glusterfs, and the glusterd configuration file /etc/glusterfs/glusterd.vol.17:22
semiosis(thats a static config file which you'll never need to edit, btw)17:23
semiosisIf you wish to install to another location (using for example ./configure –prefix=/opt/glusterfs) make sure those three files are in their required locations.17:23
semiosisOnce installed, either from source or from a binary package, the server can be started with “server glusterd start”.  This starts the glusterd management daemon, which is controlled by the gluster command.17:23
semiosis The glusterd management daemon takes care of associating servers, generating volume configurations (for servers & clients,) and managing the brick export daemon (glusterfsd) processes.  Clients that only want to mount glusterfs volumes do not need the glusterd service running.17:23
semiosisAnother packaging note... the official deb package from Gluster is a single binary package that installs the full client & server, but the packages in my PPA are derived from the Debian Sid packages, which provide separate binary pkgs for server, client, libs, devel, etc allowing for a client-only installation17:24
semiosisNow, getting back to glusterfs architecture, and setting up a trusted storage pool...17:25
semiosisSetting up a trusted storage pool is also very straightforward.  I recommend using hostnames or FQDNs, rather than IP addresses, to identify the servers.17:25
semiosisFQDNs are probably the best choice, since they can be updated in one place (the zone authority) and DNS takes care of distributing the update to all servers & clients in the cluster, whereas with hostnames, /etc/hosts would need to be updated on all machines17:26
semiosisServers are added to pools using the 'gluster peer probe <hostname>' command.  A server can only be a member of one pool, so attempting to probe a server that is already in a pool will result in an error.17:26
semiosisTo add a server to a pool the probe must be sent from an existing server to the new server, not the other way.  When initially creating a trusted storage pool, it's easiest to use one server to send out probes to all of the others.17:26
ClassBotremib asked: Would you recommend using separate glusterfs servers or use the webservers both as glusterfs server/client?17:26
semiosisexcellent question!  there are benefits to both approaches.  Without going into too much detail, read-only can be done locally but there are some reasons to do writes from seperate clients if those clients are going to be writing to the same file (or locking on the same file)17:28
semiosisthere's a slight chance for coherency problems if the client-servers lose connectivity to each other, and writes go to the same file on both... that file will probably not be automatically repaired, but that's an edge case that may never happen in yoru application.  testing is very important17:30
semiosisthats called a split-brain in glusterfs terminology17:30
semiosiswrites can go to different files under that partition condition just fine, it's only an issue if the two server-clients update the same file and they're not synchronized17:31
semiosisand i dont even know if network partitions are likely in EC2, it's just a theoretical concern for me at this point, so go forth an experiment!17:31
semiosisWhen initially creating a trusted storage pool, it's easiest to use one server to send out probes to all of the others.17:32
semiosisAs each additional server joins the pool it's hostname (and other information) is propagated to all of the previously existing servers.17:32
semiosisOne cautionary note, when sending out the initial probes, the recipients of the probes will only know the sender by its IP address.17:32
semiosisTo correct this, send a probe from just one of the additional servers back to the initial server – this will not change the structure of the pool but it will propagate an IP address to hostname update to all of the peers.17:32
semiosisFrom that point on any new peers added to the pool will get the full hostname of every existing peer, including the peer sending the probe.17:32
ClassBotkim0 asked: What's your overall impression of glusterfs robustness and ability to recover from split-brains or node failures17:33
semiosisit depends heavily on your application's workload, for my application it's great, but Your Mileage May Vary.  this is the biggest concern with database-type workloads, where you would have multiple DB servers wanting to lock on a single file17:34
semiosisbut for regular file storage i've found it to be great17:34
semiosisand of course it depends also a great deal on the cloud-provider's network, not just glusterfs...17:34
semiosisresolving a split-brain issue is relatively painless... just determine which replica has the "correct" version of the file, and delete the "bad" version from the other replica(s) and glusterfs will replace the deleted bad copies with the good copy and all futhre access will be synchronized, so it's usually not a big deal17:35
ClassBotnatea asked: Is the performance of GlusterFS storage comparable to a local storage? What are the downsides?17:36
semiosisthat sounds like a low-level component performance question, and I recommend concentrating on high-level aggregate application throughput.17:37
semiosisi'll get to that shortly talking about the different types of volumes17:37
semiosisOnce peers have been added to the pool volumes can be created.  But before creating the volumes it's important to have set up the backend filesystems that will be used for bricks.17:37
semiosisIn EC2 (and compatible) cloud environments this is done by attaching a block device to the instance, then formatting and mounting the block device filesystem.17:38
semiosisBlock devices can be added at instance creation time using the EC2 command ec2-run-instances with the -b option.17:38
semiosisEBS volumes are specified for example with -b /dev/sdd=:20 where /dev/sdd is the device name to use, and :20 is the size (in GB) of the volume to create.17:38
semiosis Glusterfs recommends using ext4 filesystems for bricks since it has good performance and is well tested.17:38
semiosisAs I mentioned earlier, the two translators of primary importance are Distribute and Replicate.  All volumes are Distributed, and optionally also Replicated.17:38
semiosisSince volumes can have many bricks, and servers can have bricks in different volumes, a common convention is to mount brick filesystems at /bricks/volumeN.  I'll follow that convention in a few common volume configurations to follow.17:39
semiosisThe first and most basic volume type is a distributed volume on one server.  This is essentially unifying the brick filesystems to make a larger filesystem.17:39
semiosisRemember though that files are stored whole on bricks, so no file can exceed the size of a brick.  Also please remember that it is a best-practice to use bricks of equal size.  So, lets consider creating a volume of 3TB called “bigstorage”.17:39
semiosisWe could just as easily use 3 EBS bricks of 1TB each, 6 EBS bricks of 500GB each, or 10 EBS bricks of 300GB each.  Which layout to use depends on the specifics of your application, but in general spreading files out over more bricks will achieve better aggregate throughput.17:39
semiosisso even though the performance of a single brick is not as good as a local filesystem, spreading over several bricks can achieve comparable aggreagate throughput17:40
semiosisAssuming the server's hostname is 'fileserver', the volume creation command for this would be  simply “gluster volume create bigstorage fileserver:/bricks/bigstorage1 fileserver:/bricks/bigstorage2 … fileserver:/bricks/bigstorageN”.17:40
semiosisThis trivial volume which just unifies bricks on a single server has limited performance scalability.  In EC2 the network interface is usually the limiting factor, and although in theory a larger instance will have a chance at a larger slice of the network interface bandwidth, in practice I have found that this usually exceeds the bandwidth available on the network.17:40
semiosisAnd by this I mean what I've found is that larger instances do not get much more bandwidth to EBS or other instances (going beyond Large instance anyway, i'm sure smaller instances could get worse but haven't really evaluated them.)17:40
semiosisGlusterfs is known as a scale-out filesystem, and this means that performance and capacity can be scaled by adding more nodes to the cluster, rather than increasing the size of individual nodes.17:41
ClassBotneti asked: Is GLusterFS using local caching in memory?17:41
semiosisyes it does do read-caching and write-behind caching, but I leave their configuration at the default, please check out the docs at gluster.org for details, specifically http://www.gluster.com/community/documentation/index.php/Gluster_3.1:_Setting_Volume_Options17:42
semiosisGlusterfs is known as a scale-out filesystem, and this means that performance and capacity can be scaled by adding more nodes to the cluster, rather than increasing the size of individual nodes.17:43
semiosisSo the next example volume after 'bigstorage' should be 'faststorage'.  With this volume we'll combine EBS bricks in the same way but using two servers.17:43
semiosisFirst of course a trusted storage pool must be created by probing from one server (fileserver1) to the other (fileserver2) by running the command 'gluster peer probe fileserver2' on fileserver1, then updating the IP address of fileserver1 to its hostname by running 'gluster peer probe fileserver1' on fileserver2.17:43
semiosisAfter that, the volume creation command can be run, 'gluster volume create faststorage fileserver1:/bricks/faststorage1 fileserver2:/bricks/faststorage2 fileserver1:/bricks/faststorage3 fileserver2:/bricks/faststorage4 ...” where fileserver1 gets the odd numbered bricks and fileserver2 gets the even numbered bricks.17:43
semiosisIn this example there can be an arbitrary number of bricks.  Because files are distributed evenly across bricks, this has the advantage of combining the network performance of the two servers.17:43
semiosis(interleaving the brick names is just my convention, it's not required and you're free to use any convention you'd like)17:44
ClassBotkim0 asked: Since you have redudancy through replication, why not use instance-store instead of ebs17:44
semiosisah I was just about to get into replication, great timing.  in short, you can, and I do!  instance-store has consistent latency going for it, but EBS volumes can be larger, can be snapshotted & restored, and can be moved between instances (within an availability zone) so that makes managing your data much easier17:46
semiosisNow I'd like to shift gears and talk about reliability.17:46
semiosis In glusterfs clients connect directly to bricks, so if one brick goes away its files become inaccessible, but the rest of the bricks should still be available.  Similarly if one whole server goes down, only the files on the bricks it exports will be unavailable.17:46
semiosisThis is in contrast to RAID striping where if one device goes down, the whole array becomes unavailable.  This brings us to the next type of volume, distributed-replicated.  In a distributed- replicated volume as I mentioned earlier files are distributed over replica sets.17:46
semiosisSince EBS volumes are already replicated in the EC2 infrastructure it should not be necessary to replicate bricks on the same server.17:46
semiosis In EC2 replication is best suited to guard against instance failure, so its best to replicate bricks between servers.17:47
semiosisThe most straightforward replicated volume would be one with two bricks on two servers.17:47
semiosisBy convention these bricks should be named the same, so for a volume called safestorage the volume create command would look like this, “gluster volume create safestorage replica 2 fileserver1:/bricks/safestorage1 fileserver2:/bricks/safestorage1 fileserver1:/bricks/safestorage2 fileserver2:/bricks/safestorage2 ...”17:47
semiosisBricks must be added in sets of size equal to the replica count, so for replica 2, bricks must be added in pairs.17:47
semiosisScaling performance on a distributed-replicated volume is similarly straightforward, and similar to adding bricks, servers should also be added in sets of size equal to the replica count.17:47
semiosisSo, to add performance capacity to a replica 2 volume, two more server should be added to the pool, and the volume creation command would look like this, “gluster volume create safestorage replica 2 fileserver1:/bricks/safestorage1 fileserver2:/bricks/safestorage1 fileserver3:/bricks/safestorage2 fileserver4:/bricks/safestorage2 fileserver1:/bricks/safestorage3 fileserver2:/bricks/safestorage3 fileserver3:/bricks/17:47
semiosissafestorage4 fileserver4:/bricks/safestorage4...”17:47
semiosisUp to this point all of the examples involve creating a volume, but volumes can also be expanded while online.  This is done with the add-brick command, which takes parameters just like the volume create command.17:48
semiosisBricks still need to be added in sets of size equal to the replica count though.17:48
semiosisalso note, the "add-brick" operation requires a "rebalance" to spread existing files out over the new bricks, this is a very costly operation in terms of CPU & network bandwidth so you should try to avoid it.17:49
semiosisA similar but less costly operation is "replace-brick" which can be used to move an existing brick to a new server, for example to add performance with the addition of new servers without adding capacity17:50
ClassBotThere are 10 minutes remaining in the current session.17:51
semiosisanother scaling option is to use EBS bricks smaller than 1TB, and restore from snapshots to 1TB bricks.  this is an advanced technique requriring the ec2 command ec2-create-vol & ec2-attach-vol17:51
semiosisWell looks like my time is running out, so I'll try to wrap things up.  please ask any questions you've been holding back!17:52
semiosisGetting started with glusterfs is very easy, and with a bit of experimentation & performance testing you can have a large, high throguhput file storage service running in the cloud.  Best of all in my opinion is the ability to snapshot EBS bricks with the ec2-create-image API call/command which is also available in the AWS console17:53
ClassBotkim0 asked: Did you evaluate ceph as well17:53
semiosisI am keeping an eye on ceph, but it seemed to me that glusterfs is already well tested & used widely in production, even if not yet used widely in the cloud... it sure will be soon17:54
ClassBotneti asked: Is GlusterFS Supporting File Locking?17:54
semiosisyes glusterfs supports full POSIX semantics including file locking17:55
semiosisone last note about snapshotting EBS bricks... since bricks are regular ext4 filesystems, they can be restored from snapshot & read just like any other EBS volume, no hassling with mdadm or lvm to reassemble volumes like with RAID17:56
ClassBotremib asked: Does GlusterFS support quota's?17:56
ClassBotThere are 5 minutes remaining in the current session.17:56
semiosisno quota support in 3.117:57
semiosisThank you all so much for the great questions.  I hope you have fun experimenting with glusterfs, I think it's a very exciting technology.  One final note for those of you who may be interested in commercial support...17:58
semiosisGluster Inc. has recently released paid AMIs for Amazon EC2 and Vmware that are fully supported by the company.  I've not used these, but they are there for your consideration.17:59
semiosisThe glusterfs community is large and active.  I usually hang out in #gluster which is where I've learned the most about glusterfs.  There's a lot of friendly and knowledgeable people there, as well as on the mailing list, who enjoy helping out beginners18:00
semiosisthanks again!18:00
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Cloud Days - Current Session: What is Ensemble? - Presentation and Demo - Instructors: SpamapS
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/03/23/%23ubuntu-classroom.html following the conclusion of the session.18:01
SpamapSSo, I have prepared a short set of slides to try and explain what Ensemble is here: http://spamaps.org/files/Ensemble%20Presentation.pdf18:02
SpamapSI will elaborate here in channel.18:02
SpamapSEnsemble is an implementation of Service Management18:03
SpamapSup until now this has also been called "Orchestration", and the term is not all that inaccurate, though I feel that Service Management is more appropriate18:03
SpamapS"What is Service Management?"18:03
SpamapSService Management is focused on the things that servers do that end users consume18:04
SpamapSUsers connect to websites, dns servers, or (at a lower level) databases, cache services, etc18:04
SpamapSEnsemble models how services relate to one another.18:04
SpamapSWeb applications need to connect to a number of remote resources. Load balancers need to connect to web application servers.. monitoring services need to connect to services and test that they're working.18:05
SpamapSEnsemble models all of these in what we call "formulas" (more on this later)18:05
SpamapSIf this starts to sound like Configuration Management, you won't be the first to make that mistake.18:06
SpamapSHowever, this sits at a higher level than configuration management.18:06
SpamapS"Contrast With Configuration Management"18:06
SpamapSConfiguration management grew from the time when we had a few servers that were expensive to buy/lease/provision, and lived a long time.18:07
SpamapSBecause of this, system administrators modeled system configuration very deeply. Puppet, chef, etc., first and foremost, model how to configure *a server*18:07
SpamapSAs the networks grew and became more dependent on one another, the config management systems have grown the ability to share data about servers.18:08
SpamapSHowever the model is still focused on "how do I get my server configured"18:08
SpamapSEnsemble seeks to configure the service.18:09
SpamapSWith the cloud, we have the ability to rapidly provision and de-provision servers. So service management is tightly coupled with provisioning.18:09
SpamapSChef, in particular, from the config management world, has done a good job of adding this in with their management tools.18:10
SpamapSHowever, where we start to see a lot of duplication of work in configmanagement, is in sharing of the knowledge of service configuration.18:10
SpamapSPuppet and Chef both have the ability to share their "recipes" or "cookbooks"18:11
SpamapSHowever, most of these are filled with comments and variables "change this for your site"18:11
SpamapSThe knowledge of how and when and why is hard to encode in these systems.18:11
SpamapSEnsemble doesn't compete directly with them on this level. Ensemble can actually utilize configuration management to do service management.18:12
SpamapSThe comparison is similar to what we all used to do 15+ years ago with open source software18:12
SpamapSdownload tarball, extract, cd, ./configure --with-dep1=/blah && make && sudo make install18:13
SpamapSThis would be an iterative process where we would figure out how to make the software work for our particular server every time.18:13
SpamapSThen distributions came along and created packaging, and repositories, to relieve us from the burden of doing this for *most* low level dependencies.18:13
SpamapSSo ensemble seeks to give us, in the cloud, what we have on the single server.. something like 'apt-get install'18:14
SpamapS"Terms"18:14
SpamapS"service unit" - for the most part this means "a server", but it really just means one member of a service deployment. If you have 3 identical web app servers, these are 3 service units, in one web app service deployment.18:15
SpamapS"formula" - this is the sharable, ".deb" for the cloud. It encodes the relationships and runtime environment required to configure a service18:16
SpamapS"environment" - in ensemble, this defines the machine provider and settings for deploying services together. Right now this means your ec2 credentials and what instance type. But it could mean a whole host of things.18:17
SpamapS"bootstrap" - ensemble's first job in any deployment is to "boostrap" itself. You run the CLI tool to boostrap it18:17
SpamapSthat means it starts a machine that runs the top level ensemble agent that you will communicate with going forward18:18
SpamapS"Basic Workflow"18:18
SpamapSThis is how we see people using ensemble, though we have to imagine the details of this will change as ensemble grows, since it hasn't even been "released" yet.18:19
SpamapS(though, as a side note, it is working perfectly well, and available for lucid at https://launchpad.net/~ensemble/+archive/ppa)18:19
SpamapS0. (let this out of the slide) - configure your environment. This means establish AWS credentials, and record them in .ensemble/environment.yaml18:20
=== daker is now known as daker_
SpamapS1. Bootstrap (ensemble bootstrap) - this connects to your machine provider (EC2 right now) and spawns an instance, and seeds it using cloud-init to install ensemble and its dependencies18:20
SpamapS2. Deploy Services (ensemble deploy mysql wiki-db; ensemble deploy mediawiki demo-wiki)18:21
SpamapSThis actually spawns nodes with the machine provider, and runs the ensemble agent on them, telling them what service they're a part of and running the service "install" hooks to get them ready to participate in the service18:21
=== niemeyer is now known as niemeyer_bbl
SpamapS3. Relate Services (ensemble add-relation demo-wiki:db wiki-db:db)18:22
SpamapSThis part won't always be necessary. Automatic relationship resolution is being worked on right now. But sometimes you will want to be explicit, or do a relation that is optional.18:23
SpamapSIn the example above, this tells demo-wiki and wiki-db about eachother. I will pastebin a formula example to clear this up.18:23
SpamapShttp://paste.ubuntu.com/584424/18:24
SpamapSThis is the metadata portion of the mediawiki formula, which I created recently as part of the "Principia" project, which is a collection of formulas for ensemble: https://launchpad.net/principia18:24
SpamapSIf you look there, you see that it 'requires:' a relationship called 'db'18:25
SpamapSthe interface for that relationship is "mysql"18:25
SpamapSThese interface names are used to ensure you don't relate two things which have different interfaces18:25
SpamapS(almost done will take questions shortly)18:26
SpamapShttp://paste.ubuntu.com/584425/18:26
SpamapSThis is the corresponding metadata for mysql..18:26
SpamapSas you see, it provides a relationship called 'db' as well, which uses the interface 'mysql'18:27
SpamapSWhat this means is that the 'requires' side of the formula can expect certain data to be passed to it when it joins this relationship18:27
SpamapSand likewise, the provides side knows that its consumers will need certain bits18:28
SpamapSWhen this relationship is added, "hooks" are fired18:28
SpamapSThese are just scripts that are run at certain events in the relationship lifecycle18:29
SpamapSThese scripts use helper programs from ensemble to read and write data over the two-way communication channel.18:29
SpamapSIn the case of mysql, whenever a service unit joins a relationship, it creates a database for the service if it doesn't exist, and then creates a username/password/etc. and sends that to the consumer18:30
SpamapSand the mediawiki hook for the relationship will configure mediawiki to use that database18:31
SpamapSThe code for all of this is in lp:principia if you are curious.18:31
SpamapSthe final slide is just an overview of ensemble's architecture under the hood.18:32
SpamapSI will take questions now...18:32
SpamapSmarktma: GREAT question. Definitely. One of the goals is to make it easy to write new "machine providers". By doing EC2 first though, we should have a reasonable chance at working with UEC/Eucalyptus and maybe even OpenStack out of the box.18:34
ClassBotmarktma asked: is there any chance ensemble will be used for private clouds as well?18:35
SpamapShah, ok, see answer ^^18:35
ClassBotkim0 asked: What does the interface: mysql .. actually mean18:35
SpamapSI think I may have answered that already in the ensuing description..18:35
SpamapSbut essentially its a loose contract between providers/requirerers/peers on what will be passed through the communication channel18:36
ClassBotEvilPhoenix asked: (for kim0): that contract .. is it defined somewhere18:37
SpamapSIt is only defined via the formulas. It is intentially kept as a loose coupling to make formulas flexible. I could see it being strengthened a bit in the future.18:38
SpamapSNow, I wanted to stream my desktop to demo ensemble in action..18:39
SpamapSbut that has proven difficult given the 20 minutes I had to attempt to set that up.18:39
SpamapSSo I will paste bin the terminal output of an ensemble run...18:39
SpamapSI have setup a lucid instance for this, and the only commands not seen here are: sudo add-apt-repository ppa:ensemble/ppa ; apt-get update ; apt-get install ensemble ; bzr branch lp:principia ; cat > aws.sh18:40
SpamapSthe last bit is to store my aws credentials18:40
SpamapShttp://paste.ubuntu.com/584430/18:41
SpamapSthis is the boostrap phase18:41
SpamapSbootstrap even18:41
SpamapSI now need to wait for EC2 to start an instance18:42
=== daneroo_ is now known as daneroo
SpamapSubuntu@ip-10-203-81-87:~$ ensemble status18:42
SpamapS2011-03-23 18:42:02,263 INFO Connecting to environment.18:42
SpamapS2011-03-23 18:42:18,586 INFO Environment still initializing.  Will wait.18:42
SpamapSAnd now it has spawned my bootstrap18:43
SpamapSthere will be live DNS names here, so hopefully my security groups will keep your prying eyes out..18:43
SpamapSmachines: 0: {dns-name: ec2-50-17-142-155.compute-1.amazonaws.com, instance-id: i-10f63f7f}18:43
SpamapSservices: {}18:43
SpamapS2011-03-23 18:42:50,216 INFO 'status' command finished successfully18:43
ClassBotTeTeT asked: what would a system administrators task with ensemble be - write formulas or just deploy them or a mix?18:43
SpamapSI'd imagine sysadmins would write the formulas for an organization's own services which consume existing services.18:44
SpamapSThe common scenario is a LAMP application which takes advantage of memcached, mysql, and has a load balancer18:44
SpamapSThe lamp app needs to have its config files written with the db, cache servers, etc., so the sysadmin would write the relation hooks for mysql and memcached. OR a developer could write these. The devops paradigm kind of suggests that they work together on this.18:45
SpamapSOk now I'll run my "demo.sh" script which builds a full mediawiki stack18:46
SpamapSWhile this is going, I will stress that this is *unreleased* alpha software, though the dev team has been very dilligent and the code is of a very high quality (written in python with twisted, and available at lp:ensemble18:47
SpamapShttp://paste.ubuntu.com/584433/18:47
SpamapSNow we'll need to wait a few minutes while all of those nodes spawn18:47
SpamapSNow, I'm using t1.micro, so these provision *fast* .. we can watch their hooks run w/ debug-log...18:49
SpamapSHowever they may already be done..18:49
SpamapSIdeally, we'll have a wiki accessible at the address of 'wiki-balancer' .. lets see18:50
ClassBotThere are 10 minutes remaining in the current session.18:51
ClassBotTeTeT asked: is the deployment through ensemble itself or via cloud-init or puppet or other config tools?18:51
SpamapShttp://paste.ubuntu.com/584437/18:52
SpamapSWhile you guys try to decipher that I'll answer TeTeT18:52
SpamapSTeTeT: the nodes are configured via cloud-init to run ensemble's agent. After that, ensemble is in control running hooks. The formulas are pushed into S3, and then downloaded by the agent once it starts.18:52
SpamapSSo unfortunately, our load balancer has failed.. it is "machine 4" http://ec2-50-17-47-115.compute-1.amazonaws.com/ ... but the individual mediawiki nodes *are* working..18:53
SpamapShttp://ec2-204-236-202-35.compute-1.amazonaws.com/mediawiki/index.php/Main_Page18:53
SpamapSAhh, there was a bug in my demo.sh :)18:55
SpamapS$ENSEMBLE add-relation wiki-balancer demo-wiki:reverseproxy18:55
SpamapSmediawiki has no relation named reverseproxy18:55
SpamapS2011-03-23 18:46:37,900 INFO Connecting to environment.18:55
SpamapSNo matching endpoints18:55
SpamapS2011-03-23 18:46:38,473 ERROR No matching endpoints18:55
SpamapS2011-03-23 18:46:38,865 INFO Connecting to environment.18:55
SpamapSWe actually had that error but missed it. ;)18:56
SpamapSlets relate the load balancer now18:56
ClassBotThere are 5 minutes remaining in the current session.18:56
SpamapSubuntu@ip-10-203-81-87:~$ ensemble add-relation wiki-balancer:reverseproxy demo-wiki:website18:56
SpamapS2011-03-23 18:56:28,059 INFO Connecting to environment.18:56
SpamapS2011-03-23 18:56:28,691 INFO Added http relation to all service units.18:56
ClassBotkim0 asked: Can't a cache and a wiki service-units share the same ec2 instance18:56
SpamapS2011-03-23 18:56:28,691 INFO 'add_relation' command finished successfully18:56
SpamapSkim0: the idea is that in that instance, its simpler to use something like LXC containers to make it easier to write formulas. However, in the case of purely non-conflicting formulas, there should be a way in the future to do that yes18:57
SpamapShttp://ec2-50-17-47-115.compute-1.amazonaws.com/mediawiki/index.php/Main_Page18:57
SpamapSAnd there you have a working mediawiki18:57
ClassBotTeTeT asked: will ensemble also provide service monitoring, or is that better left to munin/nagios and alike18:58
SpamapSTeTeT: The latter. nagios/munin/etc are just services in themselves. And they speak the same protocols as consuming services. If a formula wants to explicitly expose *more* over a monitoring interface they certainly can18:59
SpamapSI think thats about all the time we have18:59
SpamapSThanks so much for taking the time to listen. https://launchpad.net/ensemble has more information!19:00
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Cloud Days - Current Session: Using Linux Containers in Natty - Instructors: hallyn
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/03/23/%23ubuntu-classroom.html following the conclusion of the session.19:01
hallynOk, hey all19:02
hallynI'm going to talk about containers on natty.19:03
hallynIn the past, that is, until definately lucid, there were some constraints which made containers more painful to administer -19:03
hallyni.e.  you couldn't safely upgrade udev19:03
hallynthat's now gone!19:03
hallynbut, let me start at the start19:04
hallyncontainers, for anyone really new, are a way to run what appear to be different VMs, but without the overhead of an OS for each VM, and without any hardware emulation19:04
hallynso you can fit in a lot of containers on old hardware with little overhead19:04
hallynthey are similar to openvz and vserver - they're not competition, though.19:04
hallynrather, they're the ongoing work to upstream the functionality from vserver and openvz19:05
hallynContainers are a userspace fiction built on top of some nifty kernel functionality.19:05
hallynThere are two popular implementations right now:19:05
hallynthe libvirt lxc driver, and liblxc (or jsut 'lxc') from lxc.sf.net19:05
hallynHere, I'm talking about lxc.sf.net19:06
hallynAll right, in order to demo some lxc functionality, I set up a stock natty VM on amazon.  You can get to it as:19:06
hallynssh ec2-50-17-73-23.compute-1.amazonaws.com -l guest19:06
hallynpassword is 'none'19:06
hallynthat should get you into read-only screen session.  To get out, hit '~.' to kill ssh.19:06
hallynOne of the kernel pieces used by containers is the namespaces.19:07
hallynYou can use just the namespaces (for fun) using 'lxc-unshare'19:07
hallynit's not a very user-friendly command, though.19:07
hallynbecause it's rarely used...19:07
hallynwhat I just did there on the demo is to unshare my mount, pid, and utsname (hostname) namespaces19:08
hallynusing 'lxc-unshare -s 'MOUNT|PID|UTSNAME" /bin/bash'19:08
hallynlxc-unshare doesn't remount /proc for you, so I had to do that.  Once I've done that, ps only shows tasks in my pid namespace19:08
hallynalso, I can change my hostname without changing the hostname on the rest f the system19:08
hallynWhen I exited the namespace, I was brought back to a shell with the old hostname19:09
hallynall right, another thing used by containers is bind mounts.  Not much to say about them, let me just do a quick demo of playing with them:19:10
ClassBotToyKeeper asked: Will there be a log available for this screen session?19:10
hallynyes,19:11
hallynoh, no. sorry19:11
hallyndidn't think to set that up19:11
hallynhm,19:11
hallynok, i'm logging it as of now.  I'll decide where to put it later.  thanks.19:11
hallynnothing fancy, just bind-mounting filesystems19:12
hallynwhich is a way of saving a lot of space, if you share /usr and /lib amongst a lot of containers19:13
hallynanyway, moving on to actual usage19:13
hallynTypically there are 3 ways that I might set up networking for a container19:14
hallynOften, if I'm lazy or already have it set up, I'll re-use the libvirt bridge, virbr0, to bind container NICs to19:14
hallynwell, at least apt-get worked :)19:16
hallynIf I'm on a laptop using wireless, I"ll usually do that route, because you can't directly bridge a wireless NIC.19:16
hallynAnd otherwise I'd have to set up my own iptables rules to do the forwarding from containers bridge to the host NIC19:16
hallynIf I'm on a 'real' host, I'll bridge the host's NIC and use that for containers.19:17
hallynthat's what lxc-veth.conf does19:17
hallynSo first you have to set up /etc/network/interfaces to have br0 be a bridge,19:17
hallynhave eth0 not have an address, and make eeth0 a bridge-port on br019:18
hallynas seen on the demo19:18
hallynSince that's set up, I can create a bridged container just using:19:18
hallyn'lxc-create -f /etc/lxc-veth.conf -n nattya -t natty'19:18
hallynnattya is the naem of the container,19:18
hallynnatty is the template I'm using19:18
hallynand /etc/lxc-veth.conf is the config file to specify how to network19:18
hallynruh roh19:19
hallynso lxc-create is how you create a new container19:20
hallynThe rootfs and config files for each container are in /var/lib/lxc19:20
hallynyou see there are three containers there - natty1, which I created before this session, and nattya and nattyz which I jsut created19:20
hallynThe config file under /var/lib/lxc/natty1 shows some extra information,19:21
hallynincluding howmany tty's to set up,19:21
hallynand which devices to allow access to19:21
hallynthe first devices line, 'lxc.cgroup.devices.deny = a' means 'by default, don't allow any access to any device.'19:21
hallynfrom there any other entries are whitelist entries19:21
ClassBotkim0 asked: Can I run a completely different system like centos under lxc on ubuntu ?19:22
hallynyes, you can, and many people do.19:22
hallynThe main problem, usually, is in actually first setting up a container with that distro which works19:22
hallynYou can't 100% use a stock iso install and have it boot as a container19:23
hallynIt used to be there was a lot of work you had to do to make that work,19:23
hallynbut now we're down to very few things.  In fact, for ubuntu natty, we have a package called 'lxcguest'19:23
hallynif you take a stock ubuntu natty image,19:23
hallynand install 'lxcguest', then it will allow that image to boot as a container19:23
hallynIt actually only does two things now:19:24
hallyn1. it detects that it is in a container (based on a boot argument provided by lxc-start),19:24
hallynuh, that wasn't suppsoed to be 1 :),19:24
hallynand based on that, if it is in a container, it19:24
hallyn1. starts a console on /dev/console, so that 'lxc-start' itself gets a console (like you see when i start a container)19:24
hallyn2. it changes /lib/init/fstab to one with fewer filesystems,19:25
hallynbc there are some which you cannot or should not mount in a container.19:25
hallynnow, lxc ships with some 'templates'.19:25
hallynthese are under /usr/lib/lxc/tempaltes19:25
hallyn/usr/lib/lxc/templates that is19:25
hallynsome of those templates, however, don't quite work right.  So a next work item we want to tackle is to make those all work better, and add more19:26
hallynlet's take a look at the lxc-natty one:19:26
hallynit takes a MIRROR option, which I always use at home, which lets me point it at a apt-cacher-ng instance19:27
hallynit starts by doing a debootstrap of a stock natty image into /var/cache/lxc/natty/19:28
hallynso then, every time you create another container with natty template, it will rsync that image into place19:28
hallynthen it configures it, setting hostname, setting up interfaces,19:29
hallynshuts up udev,19:29
hallynsince the template by default creates 4 tty's, we get rid of /etc/init/tty5 and 619:29
hallynsince we're not installing lxcguest, we just empty out /lib/init/fstab,19:30
hallynactually, that may be a problem19:30
hallynupstart upgrades may overwrite that19:30
hallynso we should instaed have lxc-natty template always install the lxcguest package19:30
hallyn(note to self)19:30
hallynand finally, it installs the lxc configuration, which is that config file we looked at before with device access etc19:30
hallynok, i've been rampling, let me look for and address any/all questions19:31
ClassBotkapil asked: What's the status of using lxc via libvirt?19:31
hallyngood question, zul has actually been working on that.19:31
hallynlibvirt-lxc in natty is fixed so that when you log out from console, you don't kill the container any more :19:32
hallynseconly, you can use the same lxcguest package I mentioned before in libvirt-lxc,19:32
hallynso you can pretty easily debootstrap an image, chroot to it to install lxcguest, and then use it in libvirt19:32
hallynwe still may end up writing a new libvirt lxc driver, as an alternative to the current one, which just calls out to liblxc, so that libvirt and liblxc can be used to maniuplate the same containers19:33
hallynbut still haven't gotten to that19:33
ClassBotkim0 asked: can I live migrate a lxc container19:34
hallynnope19:34
hallynfor that, we'll first need checkpoint/restart.19:34
hallynI have a ppa with some kernel and userspace pieces - basically packaging the current upstream efforts.  But nothing upstream, nothing in natty, not very promising short-term19:34
ClassBotToyKeeper asked: Why would you want regular ttys in a container?  Can't the host get a guest shell similar to openvz's "vzctl enter $guestID" ?19:35
hallynnope,19:35
hallynif the container is set up right, then you can of course ssh into it;19:35
hallynor you can run lxc-start in a screen session so you can get back to it like that,19:35
hallynwhat the regular 'lxc.tty = 4' gives you is the ability to do 'lxc-console' to log in19:36
hallynas follows:19:36
hallynI start the container with '-d' to not give me a console on my current tty19:36
hallynthen lxc-console -n natty1 connects me to the tty...19:36
hallynctrl-a q exits it19:37
hallynnow, the other way you might *want* to enter a container, which i think the vzctl enter does,19:37
hallynis to actually move your current task into the container19:37
hallynThat currently is not possible19:37
hallynthere is a kernel patch, being driven now by dlezcano, to make that possible, and a patch to lxc to use it using the 'lxc-attach' command.19:37
hallynbut the kernel patch is not yet accepted upstream19:38
hallynso you cannot 'enter' a container19:38
=== niemeyer_bbl is now known as niemeyer
ClassBotrye asked: Are there any specific settings for cgroup mount for the host?19:38
hallynCurrently I just mount all cgroups.19:38
hallynUsing fstab in the demo machine, or just 'mount -t cgroup cgroup /ccgroup'19:39
hallynthe ns cgroup is going away soon,19:39
hallynso when you don't have ns cgrou pmounted, then you'll need cgroup.clone_children to be 119:39
hallynhowever, you don't need that in natty.  in n+1 you probably will.19:40
ClassBotkim0 asked: How safe is it to let random strangers ssh into containers as root ? how safe is it to run random software inside containers .. can they break out19:40
hallynnot safe at all19:40
hallynIf you google for 'lxc lsm' you can find some suggestions for using selinux or smack to clamp down19:40
hallynand, over the next year or two, I'm hoping to keep working on, and finally complete, the 'user namespaces'19:41
=== Jackson is now known as Guest46715
hallynwith user namespaces, you, as user 'kim0' and without privilege, woudl create a container.  root in that container would have full privilege over things which you yourself own19:41
hallynSo any files owned by kim0 on the host;  anything private to your namespaces, like your own hostname;19:41
hallynBUT,19:41
hallyneven when that is done, there is another consideration:  nothing is sitting between your users and the kernel19:42
hallynso any syscalls which have vulnerabilities - and there are always some - can be exploited19:42
hallynnow,19:42
hallynthe fact is of course that similar concerns should keep you vigilent over other virtualization - kvm/vmware/etc - as well.  The video driver, for instance, may allow the guest user to break out.19:43
ClassBotkim0 asked: Can one enforce cpu/memory/network limits (cgroups?) on containers19:43
hallynyou can lock a container into one or several cpus,19:44
hallynyou can limit it's memory,19:44
hallynyou can, it appears (this is new to me) throttle block io (which has been in the works for years :)19:44
hallynthe net_cls.classid has to do with some filtering based on packet labels.  I've looked at it in the past, but never seen evidence of anyone using it19:45
hallynfor documentation on cgroups, I would look at Documentation/cgroups in the kernel source19:46
hallynoh yes, and of course you can access devices19:46
hallynyou remove device access by writing to /cgroup/<name>/devices.deny, an entry of the form19:47
hallynmajor:minor rwm19:47
hallynwhere r=read,w=write,m=mknod19:47
hallynoh, i lied,19:47
hallynfirst is 'a' for any, 'c' for char, or 'b' for block,19:48
hallynthen major:minor, then rwm19:48
hallynyou can see the current settings for cgroup in /cgroup/devices.list19:48
hallynand allow access by writing to devices.allow19:48
ClassBotsveiss asked: is there any resource control support integrated with containers? Limiting CPU, memory/swap, etc... I'm thinking along the lines of the features provided by Solaris, if you're familiar with those19:48
hallynyou can pin a container to a cpu, and you can track its usage, but you cannot (last I knew) limit % cpu19:49
hallynoh, there is one more cgroup i've not mentioned, 'freezer', which as the name sugguests lets you freeze a task.19:49
hallynso i can start up the natty1 guest and then freeze it like so19:50
hallynlxc-freeze just does 'echo "FROZEN" > /cgroup/$container/freezer.state' for me19:50
hallynlxc-thaw thaws it19:50
hallynmake that lxc-unfreeze :)19:50
hallyncan't get a console when it's frozen :)19:51
ClassBotThere are 10 minutes remaining in the current session.19:51
hallynthere are a few other lxc-* commands to help administration19:51
hallynlxc-ls lists the available containers in the first line,19:52
hallynand the active ones inthe second19:52
hallynlxc-info just shows its state19:52
hallynlxc-ps shows tasks int he container, but you have to treat it just right19:52
hallynlxc-ps just does 'ps' and shows you if any tasks in your bash session are in a container :)19:53
hallynlxc-ps --name natty1 shows me the processes in container natty119:53
hallynand lxc-ps -ef shows me all tasks, prepended by the container any task is in19:53
hallynlxc-ps --name natty1 --forest is the prettiest :)19:53
hallynnow, i didn't get a chance to try this in advance so iwll probably fail, but19:54
hallynhm19:54
ClassBotThere are 5 minutes remaining in the current session.19:56
hallynthere is the /lib/init/fstab which lxcgueset package will use19:56
hallynok, what i did there,19:57
hallynwas i had debootstrapped a stock image into 'demo1',  i jsut installed lxcguest,19:57
hallynand fired it up as a container19:57
hallynonly problem ims i don't know the password :)19:57
ClassBotkim0 asked: Any way to update the base natty template that gets rsync'ed to create new guests19:57
hallynsure, chroot to /var/cache/lxc/natty1 and apt-get update :)19:58
hallynok, thanks everyone19:58
kim0Thanks a lot .. It's been a great deep dive session19:59
kim0Next Up is OpenStack Intro session19:59
soreno/19:59
sorenkim0: How does it work? Do you copy questions from somewhere else or do I need to do that myself?20:00
sorenOr do people just ask here?20:00
kim0soren: you "/msg ClassBot !q" then !y on every question20:00
kim0soren: please join #ubuntu-classroom-chat as well20:01
sorenThis is complicated :)20:01
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Cloud Days - Current Session: Open-Stack Introduction - Instructors: soren
sorenHello, everyone!20:01
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/03/23/%23ubuntu-classroom.html following the conclusion of the session.20:01
sorenI'm Soren, I'm one of the core openstack developers.20:02
sorenOpenStack consists of two major components and a couple of smaller ones.20:02
sorenThe major ones are OpenStack Compute, codenanmed nova.20:02
soren...and OpenStack Storage, codenamed Swift.20:02
sorenSwift is what drives Rackspace Cloud Files, which is a service very much like Amazon S3.20:03
sorenIt's *massively* scalable, and is used to store petabytes of data today.20:03
sorenI work on Nova, though, so that's what I'll spend most time talking about today.20:03
sorenNova is a project that started at NASA.20:03
sorenApart froms ending stuff into space, NASA also does a bunch of other research things for the US government.20:04
sorenAMong them: "Look into this cloud computing thing"20:04
sorenThis is what turned into the NASA Nebula project.20:04
sorenIf you google it (I forgot to do so in advance), you'll find images of big containers that say Nebula on the side.20:05
sorenThey're building blocks for NASA's cloud.20:05
sorenAnyways, they started our running this on Eucalyptus.20:05
sorenThe same stuff that drives UEC.20:05
sorenThis got.. uh... "old" eventually, and they decided to throw it out and write their own thing.20:06
soren..so they did, and they open sourced it.20:06
sorenRAckspace had plans for open sourcing their cloud platform, too, so they called NASA and said "wanna play?" (paraphrasing a little bit), and they were up for it.20:07
sorenSo Rackspace had Swift, NASA had Nova. We put it together and called it OpenStakc.20:07
sorenOpenStack, even.20:07
sorenIf you go to look at them, and they don't look like two pieces of the same puzzle, this is why. They share no ancestry, really.20:08
sorenThey now work happily together, though.20:08
* soren attempts to work that qeustions thing20:08
ClassBotEvilPhoenix asked: What exactly IS Open-Stack?20:09
sorenI guess that one is answered..20:09
ClassBotmedberry asked: Can you briefly differentiate openstack from eucalyptus20:09
sorenYes. Yes, I can.20:09
sorenSo, Eucalyptus corresponds to Nova.20:10
sorenThey both focus on the compute side of things, while providing a *very* simple object store. Neither try to do any sort of large scale stuff.20:10
sorenErr..20:10
sorenFor storage, I mean.20:10
sorenFor the compute part, the architectures are *very* dissimilar.20:11
sorenSo, last I looked (admittedly 1½ year ago, but I'm told this is still true), Eucalyptus is strictly hierarchical.20:11
sorenThere's one "cloud controller" at the top.20:12
sorenThere's a number of cluster controllers beneath this one cloud controller.20:12
soren...and there's a number of "node controllers" beneath the cluster controllers.20:12
sorenEucalyptus is written in Java, and uses XML and web services for all its communication.20:13
sorenIt polls from the top down.20:13
sorenNever the other way around.20:13
sorenNova uses message queues.20:14
sorenNova is written in Python.20:14
sorenWe have no specific structure that must be followed.20:14
sorenThere are a number of components: compute, network, scheduler, objectstore, api, and volume.20:14
sorenThere can be any number of each of them.20:14
sorenSo Nova itself has no single points of failure.20:15
sorenOh, Eucalyptus's cluster and node controllers are written in C, by the way. I forgot.20:15
sorenAll of Nova is Python.20:16
sorenAFAIK, Eucalyptus supports KVM and Xen.20:16
sorenWe support KVM, Xen, Hyper-V, user-mode-linux, LXC (if not now, then *very* soon), VMWare vsphere..20:16
sorenEerr..20:17
sorenYeah, I think that's all.20:17
sorenWE also support a number of different storage backends (for EBS-like stuff): iSCSI, sheepdog, Ceph, AoE..20:17
sorenAnd one more, which I forget what is.20:17
sorenWe're very, very modular in this way.20:17
sorenLast I checked, Eucalyptus supported AoE. They may or may not support more now. I'm not sure.20:18
ClassBotkim0 asked: I understand openstack focuses on large scale deployments .. How suitable is it for openstack to be deployed in a small setting (5 servers?)20:18
sorenI'm glad you asked.20:18
sorenThe Ubuntu packages I made of Nova work out-of-the-box on a single machine.20:19
sorenScaling it out to 5 servers shouldn't be much work. There's some networking things that need to be set up, you need to point it at a shared database (so far, we're working towards a completely distributed data store) and a rabbitmq server.20:20
sorenWe're suffreing a bit from our flexibility, really.20:20
sorenWe can make very few assumptions about people's set up, so there might be a number of things that need to be set up correctly (e.g. which ip to use to reach an api server (or a load balancer in front of them)), which server to use for this, whcih server to use for that).20:21
sorenIt's pretty obvious pretty quickly, though, if something isn't pointed the right way.20:22
sorenWe're "blessed" with a team of people in Europe and in most US timezones, so if you run into trouble #openstack (irc channel) is open almost 24/7 :)20:22
ClassBotkim0 asked: Is nova deployed at rackspace in production yet ? did you guys go with xen or kvm, and why ?20:23
sorenNova is not in production at Rackspace yet, no.20:23
sorenRackspace has an existing platform with which we've not completely hit feature parity.20:23
soren...and apparently, it's not ok to make Rackspace's customers suffer because we want to run a different platform :)20:23
sorenRackspace will be using Xen Server.20:23
sorenOh, I forgot to list that as a supported hypervisor. It is.20:24
sorenThat's what they're used to, and that's what they can get support for for running Windows and stuff.20:24
ClassBotmarkoma asked: Gluster was mentioned in a previous discussion. Is swift the right way to go, or Gluster?20:24
sorenThey do very different things.20:25
sorenGluster aims to provide a POSIX compliant filesystem.20:25
sorenSwift is an object store.20:25
sorenYou address full objects. You cannot seek back and forth, replace parts of objects, etc.20:25
sorenVery much like Amazon S3.20:26
sorenGluster recently announced they want to contribute to Swift. I don't know exactly how, but something's afoot :)20:26
ClassBotjrisch asked: I think it's still unclear from the documentation, but it mentions something about a cloudpipe vm, but doesn't clarify it's role nor it's usage. Can you elaborate on that?20:26
sorenAh, yes.20:26
sorenCloudpipe is something NASA uses.20:27
sorenI don't think anyone else does, and perhaps will.20:27
sorenEach project has its own private subnet assigned.20:27
sorenTypically in the 10.0.0.0/8 range.20:27
sorenIt's not reachable from the internet.20:27
sorenCloudpipe images are images with an openvpn server in them.20:27
sorenEach project has such an instance running. They can connect to it using openvpn, and they can then reach their instances.20:28
sorenIt's not required at all.20:28
sorenI've never used it.20:28
ClassBottopper1 asked: is rabbitmq a SPOF since its clustering doesn't replicate queues?20:28
sorenIn a sense.20:29
sorenFrom Nova's point of view, it's a bit of a black box.20:29
sorenWe speak to something that speaks AMQP. We expect it to behave.20:30
sorenJust like we use an SQL database of some sort and expect it to behave.20:30
sorenRabbitMQ is way more stable than what we could have hacked up in the time it took to run "apt-get isntall rabbitmq-server".20:31
soren*way* more stable.20:31
sorenThere's work in progress to build a queueing service for OpenStack, but in general, we try to use existing components.20:32
ClassBotn1md4 asked: There seems to be install guides for CentOS, RHEL, and Ubuntu, is there nothing specifically for Debian?20:32
sorenNot right now, I don't think.20:32
sorenI'd be *thrilled* if a DD stepped up and put OpenStack into Debian.20:33
soren...and sorted out all the dependencies.20:33
sorenIt's silly not to, really.20:33
sorenIt's just that noone has done it yet.20:33
ClassBotmarkoma asked: do you, would you, use Ensemble to manage services for OpenStack?20:33
sorenI've no clue about what Ensemble does at the moment, so I can't really answer that.20:34
ClassBotjrisch asked: If cloudpipe isn't required, how do you set up access to the VM's, IP mappings and stuff. Do the physical node act as a pipe/NAT device?20:34
sorenI tend to use floating ip's.20:34
sorenThey're public IP's that you can dynamically assign to instances.20:34
sorenAlterntively, you can just use one of the other netowrk managers and use a subnet that's routable.20:35
ClassBotjrisch asked: So if you speak AMQP to the message queue, could one use ActiveMQ instead? (it supports clustering as far as I know).20:35
sorenAFAIK, we don't do anything that requires RabbitMq.20:35
sorenSo I guess ActiveMQ would work, if it speaks AMQP.20:36
ClassBottopper1 asked: Is there work afoot to create API documentation (rest api) for swift... right now it requires 'you read the python')20:36
sorenUh, there's plenty of docs.20:36
sorenHAng on.20:36
sorenhttp://www.rackspace.com/cloud/cloud_hosting_products/files/api/20:37
sorenSame thing.20:37
sorenI don't know where the ones labeled "openstack" are, but it's the same thing.20:37
sorenAh, question queue is empty..20:38
sorenWhere was I? :)20:38
* soren scrolls up20:38
sorenNowhere, apparantly.20:38
sorenOk, process..20:38
sorenWe do time based releases.20:38
sorenJust like Ubuntu.20:39
sorenExcept we have 3 months cycles, rather than 6 months.20:39
sorenWe align with Ubuntu so that every other OpenStack release should almost coincide with an Ubuntu release.20:39
sorenWe have feature freezes, beta freezes, RC freezes and final freezes just like Ubuntu.20:40
sorenThis is no coincidence :)20:40
sorenUbuntu is our reference platform.20:40
sorenI'm a core dev of Ubuntu, too, so if we have an problem with a component outside Nova, we can fix it and get it into our reference platform quite easily.20:41
sorenThis holistic view of the distribution has served us very well, I think.20:41
sorenNova can be way cool, but if there are bugs in libvirt, we're going to suffer, too, for instance.20:42
sorenOk, so say you wanted to work on something in Nova (or other parts of Openstack).20:42
sorenYou can branch the code from launchpad (which we use for everything: blueprints, bugs, code, answers) using "bzr branch lp:nova"20:43
sorenHack on it, upload a branch to launchpad, and click the "propose for merge" button.20:43
sorenWithin a couple of days someone should have looked at it and reviewed id.20:43
sorenit.20:44
sorenIf it's good, it gets approved. If it's less good, we (try to) give constructive feedback so that you can fix ti.20:44
sorenOnce it's good, it's approved.20:44
sorenOnce approved, a component called Tarmac takes over.20:44
sorenTarmac is run from our Jenkins instance: http://jenkins.openstack.org/20:44
sorenIt looks for approved branches on Launchpad, merges them, and runs our test suite.20:45
sorenWe have around 75% code coverage, I think.20:45
sorenFar from ideal, but it cathces quite a few things.20:45
sorenIf the tests pass, your branch is merged.20:45
sorenAnd that's it.20:45
sorenIf the tests fail, your branch gets set back to "needs review" and you can go and fix it again.20:46
sorenThis is fine. It happens all the time. Don't sweat it.20:46
sorenWE're also doing some integration tests.20:46
sorenOh, one other thing:20:46
sorenWhen a patch gets merged, it triggers a package build.20:47
sorenThis means that if Launchpad doesn't have a huge backlog, less than 20 minutes after your branch has been reviewed, you can "apt-get upgrade" and get a fresh version of Nova with your patch in it.20:48
sorenSo we continuously test that our packages build.20:48
sorenI have a Jenkins instance that checks the PPA for updates.20:48
sorenIf there are updates, it installs the updates and runs a bunch of integration tests.20:48
sorenSo within... I dunno, 35 minutes or so, probably, your patch has gone through unit tests, packages builds, and integration tests.20:49
sorenI think that's pretty cool.20:49
sorenWe're working on expanding these tests.20:50
sorenSo that we test more combinations of stuff.20:50
sorenI currently test KVM with the EC2 API using iSCSI volumes on Lucid, Maverick, and Natty.20:51
sorenWe provide backported versions of stuff that is needed to run Openstack on Lucid, which we do support.20:51
ClassBotThere are 10 minutes remaining in the current session.20:51
soren...as well as Maverick and NAtty.20:51
sorenWell, there's nothing backported for Natty, because we put that directly into UBuntu.20:51
ClassBotkim0 asked: Can you talk a bit about nova's roadmap20:52
sorenSort of.20:52
sorenThere are some things on the road map already.20:52
soren...but we have a design summit coming up, where we'll be talking much more about the roadmap.20:53
sorenIt's an open event in Santa Clara in about a month, if anyone wants to come.20:53
sorenShould be fun.20:53
sorenThings that I do know on the road map already:20:53
* soren looks desperately for the list.20:54
sorenhttps://blueprints.launchpad.net/nova20:55
sorenWell, this is the list of everything.20:55
sorenCactus is the release we're working on now.20:55
sorenBexar is the previous one.20:55
sorenDiablo the next one.20:55
sorenLots of different companies work on OpenStack. They have their own priorities.20:56
sorenWhatever they want to work on, they can.20:56
ClassBotThere are 5 minutes remaining in the current session.20:56
sorenSo in that respect, it's hard to say what's going to land at any given time. It depends on what people feel like working on.20:56
sorenWe're going to split out some stuff from nova (volume and network services), though.20:57
sorenThat seems pretty certain right now.20:57
sorenAnd add support for the EC2 SOAP API.20:57
sorenPeople keep telling me no-one uses it, but... meh. I want to add it.20:57
sorenMAn, I can't really remember more stuff right now :(20:58
ClassBotjrisch asked: I know that Swift is in production several places (other than Rackspace) - do you know of any companies that are using NOVA (besides NASA)...?20:58
sorenNot at the moment, no.20:58
sorenThis current dev cycle has been one focused on stability and deployability.20:58
sorenThe goal has been to get Nova to a point where people could actually use it in production.20:59
sorenI've blogged a bit about some the stuff I've done on that.20:59
soren..but lots of others have worked on it, too.20:59
sorenI guess that's it?20:59
sorenI hope it's been useful.21:00
kim0Thanks soren21:00
kim0This has been great21:00
kim0Thanks everyone ..21:00
kim0Hope you enjoyed the sessions21:00
kim0See you tomorrow for the second day21:01
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/03/23/%23ubuntu-classroom.html21:01
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat ||
* DigitalFlux Missed today's Cloud day :(21:09
Methshttp://irclogs.ubuntu.com/2011/03/23/%23ubuntu-classroom.html21:09
DigitalFluxMeths: Cool Thanks, may be tomorrow i can catch up21:10
=== neversfelde_ is now known as neversfelde
=== sre-su_ is now known as sre-su
=== niemeyer is now known as niemeyer_dinner

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!