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: , ,

0123 | ติดตั้ง OpenVZ บน CentOS 6.0 64bit

Tuesday, July 12th, 2011 Posted in Linux | No Comments »

คู่มือก๊อปวางอีกแล้วครับท่าน ปรับปรุงจาก CentOS 5.0 นิดหน่อย เนื่องจากชื่อ package มันไม่ตรงกัน
วิธีลงไม่รวมถึงการ optimize ระบบ และการตั้งค่า vps นะครับ

wget -O /etc/yum.repos.d/openvz.repo http://icez.net/files/openvz-el6.repo
rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ
yum -y install vzkernel.x86_64 vzkernel-devel.x86_64 vzkernel-headers.x86_64 perl.x86_64
perl -pi -e "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" /etc/sysctl.conf
echo "net.ipv4.conf.default.proxy_arp = 0" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.send_redirects = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf
chkconfig vz on
init 6

ที่เหลือก็… download template มาลง เอาไว้ใน folder /vz/template/cache
http://wiki.openvz.org/Download/template/precreated
http://download.openvz.org/template/precreated/

Tags: , , ,