ใช้งาน OpenStack Swift ผ่าน Swift CLI

OpenStack Swift หรือ SwiftStack เป็นบริการ Object Storage ที่รองรับการทำงานแบบ Distribution Storage รองรับการทำ Data Replication สามารถ Scale Storage Node ไปได้เรื่อยๆ ทำให้สามารถขยายขนาดของ Storage ทำได้ง่ายมากขึ้น ครั้งนี้ไม่ได้มาแนะนำการติดตั้ง Swift แต่จะมาแนะนำวิธีการใช้งาน Swift อย่างง่าย ผ่าน Command Line ซึ่งสะดวกและรวดเร็วกว่าการใช้งานผ่าน GUI มาก สำหรับท่านที่ไม่มี Swift Server เดี๋ยวเราติดตั้ง SAIO ใช้สำหรับทดลองเล่นได้
สร้าง data container สำหรับเก็บข้อมูล
docker run -v /srv --name SWIFT_DATA busybox
จากนั้นผูก volume จาก data container ไปยัง swift server
docker run -d -p 8080 --volumes-from SWIFT_DATA -t nashtrash/docker-swift-onlyone
เท่านี้เราก็จะได้ swift ใช้งานแบบรวดเร็ว docker ps ดูว่า inernal port ได้ค่าอะไร ขอผมเป็น 0.0.0.0:49153->8080/tcp มาลองทดสอบกัน ติดตั้ง swift cli กันก่อน
apt-get install python-swiftclient
มาลองดู stat กัน
swift -A http://127.0.0.1:49153/auth/v1.0 \
-U test:tester \
-K testing \
stat
คำสั่งที่แนะนำจะแบ่งเป็นบรรทัดเพื่อความเข้าใจง่ายดังนี้

  1. ให้ Swift เชื่อมต่อไปยัง server ไหน
  2. ใช้ Username อะไรสำหรับ Authentication
  3. Auth-Key ที่ใช้สำหรับ Authentication
  4. คำสั่งที่ต้องใช้ทำงาน เช่น upload, download, list, state เป็นต้น

มาลองดูผลลัพท์ของ stat

สร้างไฟล์ swift.txt ขึ้นมาแล้ว upload ไฟล์ไปยัง container ชื่อ swift
echo "Hello Swift" > swift.txt
swift -A http://127.0.0.1:49153/auth/v1.0 \
-U test:tester \
-K testing \
upload swift swift.txt
มาลองดูผลลัพท์ของ stat อีกรอบ

จะพบว่ามี container 1 อัน และ obejct อีก 1 อัน ลองมาดูรายการ object ใน container ชื่อ swift ดูว่ามีอะไรบ้าง
swift -A http://127.0.0.1:49153/auth/v1.0 \
-U test:tester \
-K testing \
list swift
จะพบว่ามีไฟล์ swift.txt อยู่

มาลอง download ไฟล์กันดูบ้าง
swift -A http://127.0.0.1:49153/auth/v1.0 \
-U test:tester \
-K testing \
download swift swift.txt
เราก็จะได้ไฟล์มาดังนี้