มาทำ Self-hosted cloud storage ด้วย ownCloud ใน PSU กันเถอะ

เมื่ือช่วงต้นเดือนพฤษภาคม ผมได้รับอีเมลเกี่ยวกับรายชื่อ cloud storage ที่มีให้บริการ เช่น dropbox เป็นต้น แล้วมีพูดถึงว่านอกจากบริการบนอินเทอร์เน็ต ยังมี open source software ชื่อ owncloud อีกตัวนึงที่มีคนทำไว้ใช้งานเองและใช้ได้จริง และเป็นที่นิยมกันมากมาย ผมเลยตามไปดูที่ owncloud.org และก็จุดประกายความคิดขึ้นมาต่อยอดจากที่งาน WUNCA26 ว่ามีอาจารย์ท่านนึงบรรยายเกี่ยวกับ cloud ว่าอยากให้มหาวิทยาลัยมี private cloud ใช้งาน อันนี้ก็เป็นอันหนึ่งคือ self-hosted cloud storage หมายถึง ตั้งเซิร์ฟเวอร์เองไว้เก็บไฟล์
owncloud-in-psu-1
owncloud ทำอะไรได้บ้าง ผมจินตนาการอย่างนี้นะครับ ผมจะมี directory เก็บไฟล์ทำงาน ซึ่งแน่นอนอาจต้องการอีกสักหนึ่งเพื่อไว้กิจกรรมอะไรก็ได้ และนำไฟล์เหล่านี้ไปเก็บบน server ทำให้ผมจะมีข้อมูลเก็บอยู่สองแห่ง (เครื่องผมและserver)  เมื่อผมแก้ไข เพิ่ม หรือ ลบไฟล์ แล้วจะมี sync client สักตัวทำการ sync ให้เท่ากัน เมื่อผมไม่ได้ใช้เครื่องคอมฯของตนเอง ผมก็สามารถเข้าเว็บเบราว์เซอร์แล้วเข้าไปที่ URL ที่กำหนดไว้ เช่น [ http://cloud.in.psu.ac.th ] เป็นต้น ผมก็สามารถ login เข้าทำงานกับไฟล์ของผมได้แล้ว จากนั้นก็คิดต่อไปว่าแล้วผมมี Android smart phone จะต้องใช้ได้ด้วย คือเปิดดูพวกไฟล์ pdf ได้เลย รวมถึงเมื่อถ่ายรูป ไฟล์รูปภาพก็จะอัพโหลดไปเก็บอยู่บน server ของผม และเมื่อผมกลับมาเปิดเครื่องคอมฯของตนเองอีกครั้ง โปรแกรม sync client ก็จะทำการ sync ไฟล์รูปภาพจาก server ลงมาเก็บไว้ใน directory ที่กำหนดไว้

เป็นไงครับอ่านมาถึงตรงนี้ นึกออกแล้วใช่ไม๊ครับ ไม่เห็นภาพ ลองดูตัวอย่างจาก presentation เรื่อง คู่มือสำหรับผู้ใช้งาน ownCloud ครับ

ตามนี้ [ https://sharedrive.psu.ac.th/public.php?service=files&t=494382205a552cc52f07e6855c991162 ]

สองสัปดาห์ที่ผ่านมา ผมจึงลงมือทำการทดสอบ ติดตั้งง่ายครับใช้ ubuntu server 12.04.2 มีเรื่องที่ต้องสนใจ 2-3 เรื่อง เรื่องแรกคือจะใช้ฐานข้อมูลอะไร มีให้เลือก sqlite, MySQL, PostGresSQL เรื่องที่สองคือจะใช้ user name อะไรในการ login เข้าใช้งาน เรื่องที่สามคือจะกำหนดพื้นที่ดิสก์รวมอยู่กับ system หรือแยก partition ต่างหากสำหรับเก็บ data นอกจากนี้ก็เป็นการคอนฟิกเพิ่มเติมโปรแกรม (owncloud จะเรียกว่า Apps) เช่น Bookmark, News Feed, Web mail client เป็นต้น และสุดท้ายคือตั้งค่า disk quota สำหรับผู้ใช้แต่ละคน

เริ่มต้นด้วยแบบง่ายๆก็ใช้ local user ของโปรแกรม owncloud เองเลย ซึ่งเก็บอยู่บนฐานข้อมูล sqlite ในขั้นตอนติดตั้ง แบบยากขึ้นมานิด จะใช้ External user support ได้อย่างไร ก็พบว่าทำได้จาก LDAP, IMAP, FTP server ผมเลือกใช้ FTP server เพราะว่าเราสามารถผสมใช้ linux user name พร้อมๆไปกับ PSU Passport ของมหาวิทยาลัยได้ด้วย ผ่านทาง FTP server และอนุญาตเฉพาะ user name ที่เป็นสมาชิกเท่านั้น ซึ่งเป็นความรู้ที่ได้รับจากหลวงพี่วิภัทรสั่งสอนไว้นั่นเอง คือ PSU-radius + vsftpd + pam_radius_auth

ถัดมาก็ทดสอบเปลี่ยนไปใช้ MySQL database ก็ไม่ยุ่งยากอะไร คือ ต้องเตรียม database name, database user, database password ไว้ก่อน จากนั้นในขั้นตอนติดตั้งทางหน้าเว็บครั้งแรกให้เลือก Advanced เพื่อเลือกว่าจะใช้ MySQL แล้วระบุค่าสำหรับ database ที่เตรียมไว้นั้น

ถัดมาก็ศึกษาวิธีการเปลี่ยนใช้ partition แยกต่างหากสำหรับ ownCloud data ซึ่งก็คือที่เก็บไฟล์ของ user แต่ละคนนั่นเอง หากให้คนละ 10 GB มีคน 100 คน ก็ต้องใช้ 1,000 GB เป็นต้นจึงจำเป็นต้องแยก mount disk ต่างหาก ตรงนี้จะเกี่ยวกับไฟล์ /etc/fstab ด้วยนะ นอกจากนี้ผมต้องการให้มีการ share with link เพื่อให้สาธารณะดูไฟล์ได้โดยผมจะส่งเป็นอีเมลไปให้ จึงต้องคอนฟิกเรื่อง mail อีกนิด

การติดตั้งหลักๆเสร็จไปแล้ว ต่อมาก็ทดสอบการใช้งาน เริ่มต้นจากเมื่อ login เข้าใช้งานครั้งแรก จะมีหน้าต่าง wizard เชิญชวนให้ติดตั้ง Desktop Client ซึ่งมีสำหรับ Linux, Windows, Mac OS ซึ่งฟรีครับ นอกจากนี้ก็มีสำหรับ Android PlayStore, iOS AppStore แต่เนื่องจากต้องมีค่าใช้จ่ายสำหรับดาวน์โหลดทาง PlayStore และ AppStore ราคา 29 บาท ผมจึงเสาะหาพบว่า “ฟรี” ที่นี่ครับ [ http://f-droid.org ]จะมีโปรแกรม owncloud client ให้ใช้ฟรีๆครับ

ทดสอบการใช้งาน พบว่ามี bug 2-3 เรื่อง เรื่องแรกการ share file ระหว่าง user name บน ownCloud กับ External user ยังไม่สมบูรณ์ จึงค้นหา google พบว่ามีคนบอกวิธีแก้ bug ไว้ให้ และ bug เกี่ยวกับเกิดมี error log record ผิดปรกติจำนวนมากใน /var/www/owncloud/data/owncloud.log ซึ่งไม่ควรจะมี ผมพบว่ายังมี bug อีก 2 อย่างที่ยังแก้ไขไม่ได้คือ disk quota แสดงผลไม่ตรงความจริง คือ ผมอัพโหลดไฟล์ไว้มากๆเพื่อลองทดสอบประมาณ 7พันกว่าไฟล์ ขนาด 7 GB กว่าๆ แต่โปรแกรมรายงานเพียง 2GB เท่านั้น และอีก bug คือ Apps ชื่อ Pictures Gallery เมื่อผมลบไฟล์รูปภาพไปแล้ว แต่ thumbnail picture ยังคงเก็บอยู่ อันนี้ผมซอกแซกเข้าไปดูในที่เก็บ คือ cd /var/www/owncloud/data/(user)/gallery/

หากต้องการทดสอบ ให้อ่านเรื่อง ติดตั้ง owncloud (5.0.6) บน ubuntu (12.04.2) สำหรับ PSU [ http://opensource.cc.psu.ac.th/ติดตั้ง_owncloud_(5.0.6)_บน_ubuntu_(12.04.2)_สำหรับ_PSU ] อยู่ที่เว็บไซต์ opensouce.cc.psu.ac.th ครับ

และนี่คือ Your Private Cloud Storage in PSU ครับ ขอบคุณครับ

1 comment for “มาทำ Self-hosted cloud storage ด้วย ownCloud ใน PSU กันเถอะ

Leave a Reply