Baylisa - Dive Into OpenStack


Published on

See also

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Baylisa - Dive Into OpenStack

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