0143 | Flashcache บน CentOS 6
Wednesday, January 2nd, 2013 Posted in Linux, Web Server | No Comments »จริงๆ เคยเขียนไปเมื่อนานมาแล้วครับ ตั้งแต่ centos 6 เพิ่งออกใหม่ๆ มั้ง (ฮา) อยุ่ใน entry นี้ ครับ ซึ่ง software มันก็ update มาเยอะพอควรแล้วล่ะนะ ก็เลยขอ update ตามนิดหน่อย
สำหรับ flashcache มันคือ module ที่ทำหน้าที่ในการใช้ ssd (หรืออะไรก็ตามที่เร็วกว่า harddisk) มาช่วย cache ข้อมูลที่อ่านบ่อยๆ ไว้ เป็นเหมือน buffer อีกชั้นนึงของการอ่านข้อมูล ช่วยให้สามารถเรียกใช้ข้อมูลได้เร็วขึ้น (กรณีที่มี cache อยู่แล้วน่ะนะ) ลดการทำงานของ harddisk ลง และเพิ่มประสิทธิภาพในภาพรวมถ้าตั้งค่าได้ถูกต้อง
ข้อดีของ flashcache ที่เห็นได้ชัดมากคือ เราสามารถทำ storage ที่มีความเร็วสูงมากๆ และเร็วกว่าปกติ(พอควร) ได้ในราคาที่ถูกมากๆ เหมาะกับการใช้งานที่ต้องการ read random เยอะๆ เช่นการเข้าถึงไฟล์ขนาดเล็กๆ จำนวนมาก หรือการใช้งานฐานข้อมูลครับ
ข้อเสียมีนิดหน่อยคือ cache ratio ต้องสูงมากพอที่จะไม่ทำให้เกิด replacement บ่อย เพราะ SSD มันอ่านพร้อมกับเขียนได้ช้าครับ (ส่วนมากเวลาเรา benchmark จะมีแค่ อ่านอย่างเดียว หรือเขียนอย่างเดียว ไม่ค่อยมี อ่านพร้อมกับเขียน ให้เห็น เพราะมันทดสอบยาก) และถ้า ssd พังในบางสถานการณ์อาจทำให้ข้อมูลหายบางส่วนได้ครับ (รายละเอียดด้านล่าง)
วิธีติดตั้งสำหรับ centos ค่อนข้างง่ายครับ ก่อนอื่นมี pre-requirement คือต้องการ repository “epel” สำหรับติดตั้งคำสั่ง git เพิ่ม ลงได้ด้วยคำสั่งนี้ครับ
rpm -Uvh http://mirrors.thzhost.com/epel/6/x86_64/epel-release-6-8.noarch.rpm |
จากนั้นก็สั่งติดตั้ง software ที่จำเป็นสำหรับการ compile flashcache
yum -y install kernel kernel-devel git make gcc-c++ device-mapper |
แล้วก็สั่งรีบูทเครื่อง 1 ครั้งเพื่อให้ kernel ที่กำลังใช้งาน version ตรงกันกับ kernel devel ที่ติดตั้งไว้ จากนั้นก็สั่งติดตั้ง flashcache ได้เลยครับ
git clone git://github.com/facebook/flashcache.git cd flashcache make && make install |
ถ้าไม่มี error อะไรก็สั่งทดสอบการติดตั้ง flashcache ได้ด้วยคำสั่ง modprobe flashcache เลยครับ มันไม่ควรจะมีอะไรขึ้นมาให้เห็น (ถ้ามีก็แก้ไปละกัน)
และสำหรับคำสั่งสร้าง flashcache มีดังนี้ครับ
flashcache_create -p <mode> <cachename> /dev/SSD /dev/HDD |
โดย mode การทำงานมีทั้งหมด 3 แบบคือ
- back : writeback โหมดนี้เร็วที่สุด แต่มีความเสี่ยงข้อมูลหายกรณี ssd พัง เนื่องจากเมื่อเขียนข้อมูลลงมา ข้อมูลจะถูกนำมาเขียนลง SSD ไว้ก่อน แล้วเมื่อ Harddisk ว่างงานก็ค่อยๆ ทยอยเขียนลง Harddisk จริงๆ อีกที
- thru : writethru เป็นโหมดที่เหมาะกับข้อมูลที่ถูกอ่านทันทีหลังจากเขียน คือข้อมูลจะถูกเขียนลง harddisk พร้อมๆ กับ ssd แล้ว cache ไว้ทันที
- around : writearound โหมดนี้อาจจะช้าที่สุดก็เป็นได้ครับ แต่ก็ปลอดภัยที่สุดเหมือนกัน เพราะมันจะ cache ข้อมูลเมื่อข้อมูลถูกอ่านเท่านั้น (ซึ่ง mode อื่นก็ทำแบบนี้อยู่แล้ว) สำหรับการเขียนข้อมูล จะเขียนลง harddisk ตรงๆ อย่างเดียว ไม่มีการเขียนลง ssd ครับ
Tags: centos, flashcache, install