0143 | Flashcache บน CentOS 6

จริงๆ เคยเขียนไปเมื่อนานมาแล้วครับ ตั้งแต่ 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: , ,

0142 | DDoS : TCP FIN Flood

อ่า มาต่ออันที่ 3 กันครับ ใครเห็นชื่อแปลกๆ นี่ไม่ได้พิมพ์ผิดนะครับ มันคือ FIN Flood จริงๆ

โดยก่อนอื่นต้องว่ากันด้วยการเชื่อมต่อ connection ของ TCP ก่อนครับ เนื่องจากเจ้า TCP เนี่ย เป็น protocol ที่เป็น stateful connection คือต้องมีการรับ และตอบกลับก่อนเพื่อที่จะสร้างการเชื่อมต่อกันได้สมบูรณ์ ซึ่งจะกำกับด้วย TCP Flag ที่มีทั้งหมด 9 ตัว แต่มีตัวที่ใช้หลักๆ ประมาณนี้ครับ

  • ACK Acknowledge เป็น Flag ที่ถูกแปะบ่อยที่สุด เพราะมันแปะที่ SYN ไม่ได้ที่เดียว นอกนั้นแปะไว้ได้หมดเลย
  • PSH Push data บอกว่ามีการส่งข้อมูลแนบไปกับ flag อื่น(ที่ไม่ใช่ SYN) ด้วย
  • RST Reset เป็นการสั่งตัด connection แบบไม่สนสถานะ คือถ้าเจอไอ้นี่ปุ๊ปจะขึ้น connection has been reset เลยครับ เกิดจากพวกระบบ block หรือโปรแกรมที่ทำงานบน connection นั้นดับไปแบบ error ครับ
  • SYN สถานะเริ่มเชื่อมต่อ ไอ้นี่จะโผล่มาแค่สองครั้ง (2 packet แรก) เท่านั้น
  • FIN ร้องขอจบการเชื่อมต่อ

โดยมีขั้นตอนการทำงาน (state) เป็นแผนภาพแบบง่ายๆ (สาบานว่าง่ายแล้ว) ดังนี้ครับ


ภาพประกอบจาก Wikipedia : TCP

Read the rest of this entry »

Tags: , ,