Non-CDMI Content Type
Download
Report
Transcript Non-CDMI Content Type
Getting Started with
StorageGRID CDMI
Integrations
January 2013
1
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-JSONencoded) operations
Nameless objects only (no container)
Objects identified by CDMI Object ID
NetApp DevCon 2012
2
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
3
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
4
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
5
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
6
Integration with StorageGRID Object
Management (cont’d)
Administrative UI and tools provides:
operation counters
audit messages
log messages
NetApp DevCon 2012
7
Hands-on Lab
NetApp Confidential - Internal Use Only
8
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
9
StorageGRID 9.0 CDMI Lab
Tools required:
OpenSSL
Curl
Bash
NetApp CDMI Toolbox
NetApp DevCon 2012
10
NetApp CDMI Toolbox
Free Download at NetApp Community:
https://communities.netapp.com/docs/DOC18817 (registration required)
Handy for:
composing basic StorageGRID CDMI requests
conversion between CDMI Object ID and
StorageGRID UUID
NetApp DevCon 2012
11
StorageGRID CDMI Root URI
StorageGRID CDMI root URI is “/CDMI/”
So the complete URL is like
https://<server IP>:<port>/CDMI/cdmi_objectid/
NetApp DevCon 2012
12
Exercise 1: Create an Object using CDMI
Content Type
Start OpenSSL in Git Bash window:
openssl s_client -connect 192.168.168.128:8080 -quiet
Enter server IP (192.168.168.128) into CDMI
Toolbox:
Click:
NetApp DevCon 2012
13
Exercise 1: Create an Object using CDMI
Content Type (cont’d)
HTTP request generated:
POST /CDMI/cdmi_objectid/ HTTP/1.1
Host: 192.168.128.128:8080
Accept: application/cdmi-object
Content-Type: application/cdmi-object
Content-Length: 231
X-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
14
Exercise 1: Create an Object using CDMI
Content Type (cont’d)
Copy and paste HTTP request into OpenSSL:
NetApp DevCon 2012
15
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
16
Exercise 3: Update User Metadata of an
Object using CDMI Content Type
Click:
Modify JSON body to:
{
"metadata" : {
"greetings" : "Hello, world"
}
}
NetApp DevCon 2012
17
Exercise 4: Delete an Object using CDMI
Content Type
Click:
NetApp DevCon 2012
18
Developer Resources
SNIA CDMI Specification
http://www.snia.org/tech_activities/standards/curr_sta
ndards/cdmi
NetApp Community
https://communities.netapp.com/community/interfaces
_and_tools/developer/cr/content
CDMI Toolbox
CDMI Reference
StorageGRID API Reference
NetApp DevCon 2012
19
NetApp DevCon 2012
20