Design Summit - Smart State Analysis, aka VM Fleecing - Rich Oliveri

Embed Size (px)

DESCRIPTION

"Fleecing" is a core part of ManageIQ - it allows users to pre-populate dashboards with information about hypervisors, its guests, and applications running on those guests. It allows ManageIQ to do auto-discovery of running services so that admins can spend more time doing what they need to do. For more on ManageIQ, see http://manageiq.org/

Citation preview

  • 1. MMaannaaggeeIIQQ VVMMSSmmaarrtt SSttaattee AAnnaallyyssiiss((FFlleeeecciinngg))PPaassttPPrreesseennttFFuuttuurree

2. OOvveerrvviieeww Terms and definitions. History. Design considerations/requirements. Conceptual overview. Interface layers. Client access. GEM relationships. 3. TTeerrmmss aanndd DDeeffiinniittiioonnssSmart state analysisnoun (pl. smart state analyses)A boring marketing term, referring to the process of extractingguest information from a virtual machine usually, withoutrequiring agentry, or for the VM to be running.Verb (?smart state analyze? - ?perform Smart state analysis?)The execution of said process.ORIGIN early 21st cent.: some marketing guy.See also: fleece 4. TTeerrmmss aanndd DDeeffiinniittiioonnssfleecenounThe woolly covering of a sheep or goat.Verb1 the removal of said woolly covering.2 informal obtain a great deal of money or property from(someone), typically through nefarious means.DERIVATIVESVery concise and simple: fleece, fleecing, fleeced, fleecer 5. GGrraattuuiittoouuss FFlleeeecciinngg QQuuootteeIt is the dutyof a good shepherdto fleece his sheep,not to skin (flay) them.- Tiberius Ceasar 6. aanndd,, ttoo ppaarraapphhrraassee JJuulliiuussCCeeaassaarr::I came,I saw,I fleecedSemper infigo lingua mortua estVeni,vidi,Velleris(Things said, are)always more impressive in a dead language 7. TTeerrmmss aanndd DDeeffiinniittiioonnss......sseerriioouussllyy Appliance The ManageIQ appliance. The virtualmachine through which the ManageIQapplication is deployed and executed. Provider The type, brand, or flavor of virtualenvironment. Ex: RHEV, VMware,OpenStack, etc. 8. HHiissttoorryyFirst released in 2007 Initially supported: Windows: NTFS, Fat32 Linux: LVM2, EXT3 Extended to support: Windows: LDM Linux: EXT4, XFS 9. DDeessiiggnn CCoonnssiiddeerraattiioonnss aannddRReeqquuiirreemmeennttssFlexible virtual disk access Access provided through extensible mechanism. Optimize access method for given providers. Supports provider-specific API access Eliminates the need for file-level access. Enables remote fleecing. Affords greater flexibility in appliance placement. Proximity to storage need not be a factor. 10. DDeessiiggnn CCoonnssiiddeerraattiioonnss aannddRReeqquuiirreemmeennttssLightweight Each fleece is performed in a single Ruby thread. Consumes a minimum of appliance resources. Imposes minimum impact on other appliance processes. Enables parallel fleecing of multiple VMs on the sameappliance. Affords more flexibility in proxy deployment. 11. DDeessiiggnn CCoonnssiiddeerraattiioonnss aannddRReeqquuiirreemmeennttssMinimal Dependancies Only requires Ruby and requisite provider libraries. Does not encumber appliance configuration withadditional dependancies. Enables the creation of self-contained proxyexecutables. Facilitates the deployment of proxies to foreignenvironments. 12. DDeessiiggnn CCoonnssiiddeerraattiioonnss aannddRReeqquuiirreemmeennttssOS and Environment Agnostic Written almost entirely in pure Ruby. Will run in most environments that support Ruby. Can run in Windows and Linux environments. Facilitates the development of proxies fordeployment to foreign environments. 13. CCoonncceeppttuuaall OOvveerrvviieewwVirtual Disk FormatVMMetadataVirtual diskImagesProviderMetadataAccessVirtual DiskAccessMethods 14. CCoonncceeppttuuaall OOvveerrvviieewwVirtual Disk FormatXML/SyncMiqFSDiskPartitionLVMFSMIQExtractVirtual DiskAccessMethodsOS Linux: LVM2 Windows: LDM 15. EExxtteerrnnaall IInntteerrffaacceessVirtual Disk FormatVMMetadataVirtual diskImagesProviderMetadataAccessVirtual DiskAccessMethods VMware: VIM (SOAP)RHEV: RHEVM API (REST) Amazon: AWS (REST)OpenStack: Fog (REST) 16. EExxtteerrnnaall IInntteerrffaacceessVirtual Disk FormatVMMetadataVirtual diskImagesProviderMetadataAccessVirtual DiskAccessMethods Direct file access. Access via proxy. Raw device access. Access via API(VixDIskLib, AWS/EBS, Glance, etc.) 17. EExxtteerrnnaall IInntteerrffaacceessVirtual Disk FormatVMMetadataVirtual diskImagesProviderMetadataAccessVirtual DiskAccessMethods RAWQCOW, QCOW2VMware: Sparse, COWDMicrosoft: Fixed, Dynamic, Diff Etc.Virtual DiskFormat 18. Virtual Disk FormatXML/SyncMiqFSEExxtteerrnnaall IInntteerrffaacceess Implements a subset of File/Dir functionality.Disk Cannot be used by GEMs that expect File.Partition Clients must be MiqFS specific.LVM Forces re-implementation of existing code.FSMIQExtractVirtual DiskAccessMethodsOS 19. Virtual Disk FormatXML/SyncMiqFSEExxtteerrnnaall IInntteerrffaacceess Berkeley DB through: MiqBerkeleyDBDisk Rpm Packages through: MiqRpmPackagesPartition Sqlite3 through: MiqSqlite3DBLVM Conary Packages through: MiqConaryPackagesFSMIQExtractVirtual DiskAccessMethodsOS 20. IInntteerrffaaccee LLaayyeerrssManageIQ & ProviderSpecific ManageIQ Fleece RequestProviderMetadataAccessMIQExtractVMMetadataVdisk ContentsVirtual DiskAccessMethodsMiqFS Data DrillingSync VMDBProviderSpecificCommonManageIQSpecific 21. CCllaasssseess bbyy LLaayyeerrManageIQ & ProviderSpecificProviderSpecificCommonManageIQSpecificExtManagementSystemSubclassesVmOrTemplateSubclassesMiqVmSubclassesMiqVm VirtFSMIQExtractProviderLibraries 22. MMiiqqFFSS VViirrttFFSS General Pseudo FS support Integrates through File & Dir Provides mount and chrootsemantics No need for specialized clients will work with existing GEMs andscripts 23. VViirrttFFSS AAddddiittiioonnaall BBeenneeffiittss Compliance scripts can accessVM image directly. No need to retrieve files and savein DB. Native scripts should work inManageIQ context. 24. VViirrttFFSS:: BBeeyyoonndd FFlleeeecciinngg Database/Datastore backed FS Amazon S3 and Swift pseudo FS Sparse overlay FS Cassette based FS for testing Ruby files loaded from pseudo FS Self contained Ruby executables 25. GGEEMM RReellaattiioonnsshhiippssMiqVm*TypesMiqVm*VirtFsProviderLibrariesFilesystemTypesusesusesplugs intobased onRuby Scriptsexport/mount* renamed appropriately 26. FinQuestions?