0117 | ลง Flashcache ใน OpenVZ

สารพัดวิชามารกันเลยทีเดียว กว่าจะลงได้ เล่นเอาแทบตาย
อันที่จริงมันนิดเดียวเองครับ แค่ไปเอา source มา

ก่อนอื่น check ก่อนเลยว่าใช้ kernel ตัวไหนอยู่ด้วยคำสั่ง

uname -r

ตัวอย่างด้านล่างสำหรับ kernel ovzkernel-xen ovzkernel-2.6.18-274.el5.028stab093.2 เท่านั้นนะครับ
หาก version เปลี่ยนก็ต้องไปหา source tree ใหม่ด้วย ที่ http://ftp.openvz.org/kernel/branches/rhel5-2.6.18/current/

เสร็จแล้ว เข้าสิทธิ์ root รันคำสั่งต่อไปนี้

yum install rpm-build.x86_64 git.x86_64 ovzkernel-xen-devel.x86_64 ovzkernel-xen.x86_64
shutdown -r now

รีบูทเครื่องทีนึง แล้วก็ออกมาพิมพ์คำสั่งพวกนี้ด้วยสิทธิ์ user ธรรมดา
(หรือจะ root ก็ได้ แต่ต้องข้ามบางคำสั่ง กะแก้ไข path เอาเองนะครับ)

cd
mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > .rpmmacros
wget http://mirrors.thzhost.com/openvz/kernel/branches/rhel5-2.6.18/current/ovzkernel-2.6.18-274.el5.028stab093.2.src.rpm
rpm -i ovzkernel-2.6.18-274.el5.028stab093.2.src.rpm 2>&1 | grep -v mockb
cd rpmbuild/SPECS/
rpmbuild -bp --target=`uname -m` kernel-ovz.spec 2> prep-err.log | tee prep-out.log
cd ../BUILD/ovzkernel-2.6.18/linux-2.6.18-274.el5.028stab093.2.x86_64/
make oldconfig
make prepare
make modules_prepare
rsync -av /usr/src/kernels/2.6.18-274.el5.028stab093.2-x86_64/ ./

กลับเข้ามาที่สิทธิ์ root ไปโหลดไฟล์ src flashcache จาก github มา
https://github.com/facebook/flashcache/tarball/master

แตกไฟล์ให้เรียบร้อย cd เข้าไปใน folder นั้นแล้วพิมพ์

make KERNEL_TREE=/home/icez/rpmbuild/BUILD/ovzkernel-2.6.18/linux-2.6.18-274.el5.028stab093.2.x86_64  KERNEL_SOURCE_VERSION=2.6.18-274.el5.028stab093.2 install

ตรวจสอบความเรียบร้อยด้วยคำสั่ง
modprobe flashcache

ถ้าไม่มี error อะไรขึ้นมาก็ผ่าน ถ้ามีก็แก้กันเองนะครับ T_T
เสร็จและ
ที่เหลือก็สร้าง flashcache device (check ให้แน่ใจว่ายังไม่ได้ mount harddisk นะครับ)

flashcache_create -b 4k -s 100g vzdata /dev/SSD /dev/HDD

มันจะได้ block device ที่ /dev/mapper/vzdata
ให้ mount ที่ไอ้นี่แทนได้เลยครับ