เริ่มด้วยการไปโหลดไฟล์มาก่อน
แล้วก็อ่าน doc มันซะ
# Install prerequisite build packages:
yum install dkms gcc make yum-utils kernel-devel
# CentOS kernel-headers/devel packages don't include internal headers, we've got to configure the full source:
yumdownloader --source kernel-`uname -r`
sudo rpm -ivh kernel-`uname -r`.src.rpm
#At the top directory, run
make KERNEL_TREE=<Path ของ kernel source>
เสร็จพิธิ
ใช้คำสั่ง flashcache_create flashcache_destroy flashcache_load เพื่อ สร้าง ลบ หรือเรียกใช้งาน แคชได้ตามใจชอบ
หลักการง่ายๆคือ เลือก ว่าแต่หละพาทิชั่นของ harddisk จะให้แบ่งเนื้อที่บน ssd มาแคชเท่าไหร่
ข้อดี
ช่วยเพิ่มประสิทธิภาพ ของฮาร์ดดิสมากขึ้น เพราะได้แคชที่มีขนาดใหญ่ และมีความเร็วในการอ่านเขียนสูง มาก โดยเฉพาะ การอ่านเขียน ไฟล์เล็กๆ จำนวนมาก นี้จะเห็นผลชัดมาก สามารถทำให้เซิฟเวอร์ของท่าน ถลุงแบนวิธของ idc เพิ่มได้กว่าเดิมอีกมากๆๆๆๆๆ
ลดความเสี่ยงในการที่ข้อมูลหาย ในกรณีไฟดับ เพราะ ว่า ssd ไฟดับแล้วข้อมูลไม่หาย แต่ถ้าใช้แรมมาแคช ข้อมูลที่ยังไม่ sync ลง ดิส จะหายเกลี้ยง
ได้ความจุเท่า harddisk แต่ได้ความเร็วไกล้เคียงกับใช้ ssd เพียวๆ ลดปัญหา เรื่อง ssd พังง่าย และพังแบบไม่มีปี่มีขลุ่ย รวมถึง พื้นที่อันจำกัดของ ssd
โปรเจคต่อไปจะเอามาทดสอบกับ Revodrive ซึ่งมี bw ของ io สูงถึง 10Gbps น่าจะแรงน่าดู
ไว้ผมลองละเอียดๆ แล้วมาอธิบายเพิ่มเติม
ตอนนี้ เพื่อนผมได้เอาระบบนี้ไปติดตั้งกับเว็บดูละครย้อนหลังแห่งหนึ่ง สามารถ ทำให้ Server เครื่องเดียว ram 16g hdd 6 ลูก จากเดิม รับโหลดได้ราว 400-500Mbps ตอนนี้วิ่งเต็มสาย Gbps ไปหละครับ
ส่วนผมก็เพิ่งลองหัดใช้แบบงูๆปลาๆ มีอะไรก็มาแลกเปลี่ยนกันได้ครับ ^^
พี่ไอซ์ ก็ใช้วิธีนี้อยู่ แหล่มจริงๆ
icez
October 14, 2011, 11:47am
6
ใช้กับ openvz เหนื่อยกว่านี้เยอะเลยครับ kernel update ถี่ up ทีก็มาลุ้นทีว่ามันจะพังไม่พัง
เบื้องต้นมี 3 mode การทำงานนะครับ
Writethrough : เขียนลง ssd+harddisk พร้อมกัน ใช้ ssd เป็น backup write cache ในตัว (แต่ถ้า ssd เขียนข้อมูลช้าจะทำให้เครื่องอืด)
Writearound : เขียนลง harddisk อย่างเดียว โอกาสพังถ้าไฟดับระหว่าเขียนก็เท่าๆ กะปกติ
Writeback : เขียนลง ssd ก่อน แล้วว่างเมื่อไหร่ค่อย flush ลง harddisk … mode นี้ลองแล้วเร็วมาก แต่ค่อนข้างเสี่ยงกรณี ssd พัง - -’
น่าสนใจมากครับ ลองทดสอบความเร็วแล้วได้เพิ่มขึ้นเท่าไหร่ครับ (hdparm -tT)
360
October 14, 2011, 4:45pm
9
ขอถามท่านเทพหน่อยครับว่า. ด้วยเทคนิคนี้กับ เทคนิคอีกแบบคือผม install os ทั้งหมด ทุก partition ยกเว้น /home ไว้ใน ssd ส่วน /home ผมไว้ใน harddisk ปกติ. ไม่ทราบว่าแบบไหนจะให้ประสิทธิภาพด้าน i/o ที่ดีกว่ากันครับ
icez
October 14, 2011, 5:11pm
10
flashcache ไวกว่าครับ เพราะ cover ทุกอย่างเลย
ems
October 14, 2011, 5:19pm
11
ลงบน debian ยังไงครับ มันถามหา grep: /etc/redhat-release: No such file or directory
icez
October 14, 2011, 5:24pm
12
เหมือนว่า Makefile เค้าทำมาสำหรับ redhat อย่างเดียวอะครับ
ems
October 14, 2011, 5:27pm
13
360
October 14, 2011, 6:00pm
14
ขอบคุณครับ. ได้ไอเดียเพิ่มหลายอย่างทีเดียวจากกระทู้นี้
ems
October 14, 2011, 6:02pm
15
คุณอุ้ยถ้าจะให้ดีต้องใช้ case ผม
อยู่ระหว่างกระบวนการผลิต ยังไม่เสร็จครับ
ขนาด 5 U
[Edit By MOD] ท่านใดจะสอบถามเพิ่มเติมเกี่ยวกับ case นี้ รบกวน PM สอบถามหรือตั้งกระทู้ใหม่เลยครับ เดี๋ยว How-to จะเสียความต่อเนื่องครับ
ccpower
October 14, 2011, 6:08pm
16
เสี่ยโป้งครับ debian ไม่น่าจะมีปัญหานะ เพื่อนผมลงกับ ubuntu อะ แรงเลย
ส่วนการเอา ssd ไปเก็บ os แล้ว hdd ไปเก็บ data ขอบอกว่าไม่คุ้มครับ ตัวที่กิน io หนัก ไม่ใช่ส่วนของ os ครับ บูตเสร็จ os ก็ไปอยูใน RAM หมดแล้วครับ
ส่วนที่กินหนัก คือ data ที่โดนเรียกใช้งานนี่แหละครับ flashcash เลยมาช่วยตรงนี้เพราะ เหมือนเป็นแคช ขนาดใหญ่มาก (เมื่อเทียบกับแรม) ไฟล์อะไรที hit บ่อยๆ ก็ดึงจากแคชได้เลยไม่ต้องดึงจาก disk
ไฟล์อะไรที่ โดน write บ่อยๆ ก็ write ลงแคชไปไว้ก่อน ไม่ต้อง รอ hdd
บางที hdd พัง ไปครึ่งปี ยังไม่รู็เลยครับ เพราะ os มันอยุ่ในแรม มารู้อีกที ก็ตอนรีบูต ทุกสิ่งพังทลาย เหลือแต่ initramfs# T_T
ems
October 15, 2011, 8:50am
18
ลงไม่ได้ครับ
server209:~/facebook-flashcache-ba8f6bd# make -f Makefile.dkms
fatal: Not a git repository (or any of the parent directories): .git
install -o root -g root -m 0755 -d /var/lib/dkms/flashcache//source
rsync -r src/ /var/lib/dkms/flashcache//source/
sed “s/PACKAGE_VERSION=/PACKAGE_VERSION=/” src/dkms.conf > “/var/lib/dkms/flashcache//source/dkms.conf”
dkms build -m flashcache -v
Error! Invalid number of parameters passed.
Usage: build -m <module> -v <module-version>
make: *** [build] Error 1
แก้ยังไงหน๋อ Debian
360
October 17, 2011, 11:58am
19
เออ ต้องใช้ SSD ความจุขนาดไหนมาทำ cache ครับ. มีสูตรในการคำนวณไหมครับ เช่นผมมีพื้นที่ hdd รวม 1T ควรใช้ SSD เท่าไหร่ ?
60GB ขึ้นไปครับ อันนี้ ท่านพี่ท่านนึงแนะนํามา