200 likes | 365 Views
Getting Started with StorageGRID CDMI Integrations. January 2013. CDMI Support in StorageGRID 9.0. Implements parts of CDMI 1.0.1 Both CDMI Content Type (JSON-encoded) and Non-CDMI Content Type (non-JSON-encoded) operations Nameless objects only (no container)
E N D
Getting Started with StorageGRID CDMI Integrations January 2013
CDMI Support in StorageGRID 9.0 • Implements parts of CDMI 1.0.1 • Both CDMI Content Type (JSON-encoded) and Non-CDMI Content Type (non-JSON-encoded) operations • Nameless objects only (no container) • Objects identified by CDMI Object ID NetApp DevCon 2012
Functional Coverage of CDMI • Data Objects: • create (i.e., ingest) • read (i.e., retrieve) – all value bytes or byte-range • update (CDMI user metadata only) • delete • Capability Objects: • let CDMI clients discover what’s implemented in StorageGRID 9.0 NetApp DevCon 2012
CDMI Operations Coverage at a Glance C = CDMI Content Type, N = Non-CDMI Content Type p = access by pathname, ID = access by Object ID NetApp DevCon 2012
Integration with StorageGRID Object Management • Objects ingested through CDMI can be accessed using SGAPI (i.e., HTTP API), and vice versa • CDMI Object ID maps easily to StorageGRID UUID: NetApp DevCon 2012
Integration with StorageGRID Object Management (cont’d) • CDMI Data Object user metadata can be used in ILM (Information Lifecycle Management) rule • Example: if a CDMI object has user metadata “foo” equals to “abc”, keep 2 copies on disk; and then after 1 year, move to tape NetApp DevCon 2012
Integration with StorageGRID Object Management (cont’d) • Administrative UI and tools provides: • operation counters • audit messages • log messages NetApp DevCon 2012
Hands-on Lab NetApp Confidential - Internal Use Only
StorageGRID 9.0 CDMI Lab • Try out CDMI operations against a live StorageGRID instance • Create, Read, Update, Delete on a CDMI Data Object using CDMI Content Type • Send CDMI HTTP requests to the StorageGRID server NetApp DevCon 2012
StorageGRID 9.0 CDMI Lab • Tools required: • OpenSSL • Curl • Bash • NetApp CDMI Toolbox NetApp DevCon 2012
NetApp CDMI Toolbox • Free Download at NetApp Community:https://communities.netapp.com/docs/DOC-18817 (registration required) • Handy for: • composing basic StorageGRID CDMI requests • conversion between CDMI ObjectID and StorageGRID UUID NetApp DevCon 2012
StorageGRID CDMI Root URI • StorageGRID CDMI root URI is “/CDMI/” • So the complete URL is likehttps://<server IP>:<port>/CDMI/cdmi_objectid/ NetApp DevCon 2012
Exercise 1: Create an Object using CDMI Content Type • Start OpenSSLin Git Bash window:openssls_client -connect 192.168.168.128:8080 -quiet • Enter server IP (192.168.168.128) into CDMI Toolbox: • Click: NetApp DevCon 2012
Exercise 1: Create an Object using CDMI Content Type (cont’d) • HTTP request generated:POST /CDMI/cdmi_objectid/ HTTP/1.1Host: 192.168.128.128:8080Accept: application/cdmi-objectContent-Type: application/cdmi-objectContent-Length: 231X-CDMI-Specification-Version: 1.0.1{"domainURI" : "/cdmi_domains/","metadata" : {"a" : "A","ab" : "AB","b" : "B" },"mimetype" : "text/plain; charset=utf-8","valuetransferencoding" : "utf-8","value" : "Hello"} NetApp DevCon 2012
Exercise 1: Create an Object using CDMI Content Type (cont’d) • Copy and paste HTTP request into OpenSSL: NetApp DevCon 2012
Exercise 2: Read an Object using CDMI Content Type • Copy the ID of the object just created from the previous HTTP response: • Paste into CDMI Toolbox: • Click: NetApp DevCon 2012
Exercise 3: Update User Metadata of an Object using CDMI Content Type • Click: • Modify JSON body to: { "metadata" : { "greetings" : "Hello, world" } } NetApp DevCon 2012
Exercise 4: Delete an Object using CDMI Content Type • Click: NetApp DevCon 2012
Developer Resources • SNIA CDMI Specificationhttp://www.snia.org/tech_activities/standards/curr_standards/cdmi • NetApp Communityhttps://communities.netapp.com/community/interfaces_and_tools/developer/cr/content • CDMI Toolbox • CDMI Reference • StorageGRID API Reference NetApp DevCon 2012