2. Overview of OpenStack Background Compute: Nova Object Storage: Swift A Story of Three Deploys Kicking the Tires Digging In Getting Physical Internals / Q & A
3. The Mission "To produce the ubiquitous Open Source cloud computing platform that will meet the needs of public and private cloud providers regardless of size, by being simple to implement and massively scalable."
5. creating open source software to buildpublic and private clouds Software to provision virtual machines on standard hardware at massive scale Software to reliably store billions of objects distributed across standard hardware
11. Swift Components The Ring: Maps names to entities (accounts, containers, objects) on disk. Stores data based on zones, devices, partitions, and replicas Weights can be used to balance the distribution of partitions Used by the Proxy Server for many background processes Proxy Server: Request routing, exposes the public API Replication: Keep the system consistent, handle failures Updaters: Process failed or queued updates Auditors: Verify integrity of objects, containers, and accounts Account Server: Handles listing of containers, stores as SQLite DB Container Server: Handles listing of objects, stores as SQLite DB Object Server: Blob storage server, metadata kept in xattrs, data in binary format Recommended to run on XFS Object location based on hash of name & timestamp
13. Kicking the Tires Vagrant is a tool for building and distributing virtualized environments on your laptop/desktop. Install VirtualBox 4 Install ruby, rubygems, vagrant Config uses maverick, chef, debs $ sudogem install vagrant --pre $ gitclone git://github.com/ansolabs/openstack-cookbooks -b devpackages $ mkdiraptcache; mkdirchef; cd chef $ curl -o Vagrantfilehttps://gist.github.com/raw/786945/solo.rb $ vagrant up
15. Digging In nova.sh is a simple script for setting up a development environment for nova. Install Maverick (in a VM or physical box) Download & run nova.sh Code, test, commit, repeat! $ curl -O https://github.com/vishvananda/novascript/raw/master/nova.sh $ chmod755 nova.sh $ ./nova.sh branch $ ./nova.sh install $ sudo ./nova.sh run
18. Hardware Selection OpenStack is designed to run on industry standard hardware, with flexible configurations Compute x86 Server (Hardware Virt. recommended) Storage flexible (Local, SAN, NAS) Object Storage x86 Server (other architectures possible) Do not deploy with RAID (can use controller for cache)
19. Server Vendor Support Find out how much configuration your hardware vendor can provide Basic needs BIOS settings (hardware virtualization) Network boot IP on IPMI card Advanced support Host OS installation Still get management network IP via DHCP
20. Network Device Configuration Build in a manner that requires minimal change Lay out addressing in a block based model Go to L3 from the top of rack uplink Keep configuration simple More bandwidth is better than advanced QoS Let the compute host machines create logical zones
21. Host Networking DHCP for the management network Infinite leases Base DNS on IP pod-a-10-241-61-8.example.org OpenStack Compute handles IP provisioning for all guest instances Cloud deployment tools only need to setup management IPs
22. Host OS Seed Installation BOOTP / TFTP – Simple to configure Security must be handled outside of TFTP Host node must be able to reach management system via broadcast request Top of rack router can be configured to forward GPXE Not all hardware supports Better concurrent install capability than TFTP
23. Host OS Installation Building a configuration based on a scripted installation is better than a monolithic “golden image” Preseed for Ubuntu / Debian hosts Kickstartfor Fedora / CentOS / RHEL hosts YaSTfor SUSE / SLES hosts Remote bootstrapping for XenServer / Hyper-V hosts Scripted configuration allows for incremental updates with less effort
24. Post OS Configuration Utilize a configuration management solution Puppet: lp:novacontrib/puppet Chef: http://github.com/ansolabs/openstack-cookbooks Cfengine: patches welcome Create roles to scale out controller infrastructure Support: Queue, Database, LDAP Interfaces: API controllers Workers: Compute, Storage, Networking Automate registration of new host machines Base the configuration to run on management net IP
25. Monitoring Maintain your cloud using technologies you already use to maintain your datacenter(s) Nagios – alerting Ganglia – performance Syslog – log aggregation Splunk / Ossec
26. Coming Soon IPv6 support Live migration Puppet deployment tools Snapshotting Ceph, SheepDog block storage support Web UI Network refactor to use open vswitch
27. Thanks! Questions? Answers? Get started at http://ansolabs.com/deploy Some content “stolen” from http://www.slideshare.net/bpiatt/openstack-tutorial
28.
29. LDAP Data Store Ubuntu OS Puppet PXE Cloud Node SQL DB / KVS HTTP API RabbitMQ Scheduler