Linux

Computer Clusters

Computer Cluster
คือ กลุ่มของคอมพิวเตอร์ที่เชื่อมต่อกันและสามารถทำงานร่วมกัน ซึ่งเราสามารถมองได้ว่าเครื่องคอมพิวเตอร์ทั้งหมด ทำงานเสมือนเป็นเครื่องคอมพิวเตอร์เครื่องเดียวกัน ซึ่งเครื่องคอมพิวเตอร์ต่างๆ จะถูกเชื่อมต่อกันโดยระบบ Local Area Network (LAN) Computer Cluster ถูกพัฒนาขึ้นเพื่อใช้ในการเพ่ิมประสิทธิภาพของการทำงานให้สูงขึ้นมากกว่าการทำงานในระดับ Single Computer

ประเภทของ Cluster.

High-availability (HA) clusters

ถูกพัฒนาขึ้นมาเพื่อความคงทนของระบบ ซึ่งทำให้ระบบสามารถทำงานต่างๆ ได้ตลอดเวลาอย่างต่อเนื่อง โดยระบบจะประกอบไปด้วย node ต่างๆ ที่มีลักษณะเหมือนกัน (redundancy nodes) ซึ่งสามารถที่จะทำงานแทนกันได้ หากมี node ใด node หนึ่งไม่สามารถทำงานได้ โดยระบบจะมีการตรวจสอบองค์ประกอบภายในระบบ หากพบว่ามีองค์ประกอบใดไม่สามารถที่จะทำงานได้ ระบบจะนำงานที่ถูกกระทำค้างอยู่โดยองค์ประกอบที่ไม่สามารถทำงานได้นั้นไปให้องค์ประกอบอื่นทำต่อแทน

ตัวอยางของงานที่จำเป็นจะต้องใช้ HA Cluster เช่น databases, file sharing บนระบบ network, business applications, customer services เช่น electronic commerce websites.

Load-balancing clusters

ถูกพัฒนาขึ้นมาเพื่อให้ระบบสามารถรองรับปริมาณงานที่มีจำนวนมากๆ ได้ ซึ่งทำงานโดย front ends node เป็นตัวรับงานต่างๆ เข้ามาและมี commercial load balancers เป็นตัวกระจายงานออกไปให้ node ต่างๆ ที่อยู่ในระบบ Cluster ทำงานที่รับเข้ามา

High-performance computing (HPC) clusters

ทำงานโดยอาศัยการประมวลผลแบบขนาน (Parallel Computing) โดยทำการแบ่งงานที่รับเข้ามาออกเป็นส่วนย่อยๆ แล้วกระจายส่วนย่อยๆ เหล่านั้นออกไปประมวลผลตาม node ต่างๆ ซึ่งวิธีนี้จะทำให้สามารถทำงานที่ใช้เวลาในการประมวลผลนานๆ สามารถทำงานเสร็จได้อย่างรวดเร็วยิ่งขึ้น

ref : 
http://en.wikipedia.org/wiki/Computer_cluster#Cluster_categorizations
http://en.wikipedia.org/wiki/High-availability_cluster
http://en.wikipedia.org/wiki/High-performance_computing

บันทึก : ดูข้อมูลของ CPU

หลังจากหลงๆ ลืมๆ มาหลายรอบแล้ว คงต้องบันทึกเอาไว้ก่อนน่าจะดีที่สุด

หากต้องการตรวจสอบ Informations ของ CPU ของเครื่องที่เราใช้อยู่ ทำได้โดย

# cat /proc/cpuinfo

VSFTP : บังคับไม่ให้ user ย้าย directory

เคยเขียนบันทึกการตั้งค่า config ของโปรแกรม vsftp   สำหรับการใช้งานเบื้องตั้นไปแล้ว

การตั้งค่ามันก็ง่ายๆ ไม่ค่อยมีอะไรเพราะมันสะดวกสำหรับการใช้งานคนเดียว

แต่พอดีวันนี้ต้องมานั่งทำเครื่องให้เป็น FTP Server สำหรับฝ่ายงานเอาไว้สำหรับแรกเปลี่ยนไฟล์กันสำหรับบุคลากรภายในฝ่าย ก็ทำการลงโปรแกรม และตั้งค่าเสร็จเรียบร้อยแล้วอย่างที่เคยทำมาทุกครั้ง แต่รู้สึกว่าจะมีที่ขัดข้องใจอยู่อย่างหนึ่งคือ user ที่ทำการ log in ผ่านระบบ ftp เข้ามาในเครื่อง server แล้วสามารถที่จะทำการท่องเที่ยวออกไปนอก Home directory ของตัวเองได้เรียกได้ว่าออกไปจนถึงตำเหน่ง root เลย สามารถท่องเที่ยว ทัวได้รอบโลกเลย ย่อมไม่เป็นการดีแน่ สำหรับ Admin ที่จะปล่อยให้ใครก็ได้สามารถเที่ยวชมเครื่องของเราได้ตามใจชอบ (ถึงแม้ว่า user นั้นจะไม่มีสิทธิทำอะไร ใดๆ ก็ตาม)

คงต้องหาทางแก้ไขทำให้ user นั้นไม่สามารถออกไปไหนได้นอกจากอยู่แต่ใน home directory ของตัวเองเท่านั้น

ซึ่งทางแก้ก็คือ เพ่ิมเติมค่า Config เข้าไปในไฟล์ /etc/vsftpd.conf

โดยทำการเพิ่มค่าเข้าไปดังต่อไปนี้

chroot_local_user=YES

และทำการสร้างไฟล์ดังต่อไปนี้จะใช้เป็นไฟล์เปล่า (ไม่มีก็ไม่ได้จำเป็นต้องมี) ซึ่งไฟล์นี้จะใช้สำหรับใส่รายชื่อของ user ที่จะให้ทำการยกเว้นให้สามารถทำการย้าย directory ได้ ให้สร้างและ save file ไว้ที่

/etc/vsftpd.chroot_list

ทำการ restart โปรแกรม vsftp ใหม่ก็เรียบร้อยแล้ว
คราวนี้ user แต่ละคนก็จะได้อยู่กันอย่างสงบใน home directory ของตัวเองเท่านั้น

Linux : chmod

วันนี้เจอ Directory ที่มันมีความจำเป็นจะต้องกำหนด mod แบบแปลกๆ อย่างเช่น

drwxr-sr-x

เคยเจอแต่ mod แบบธรรมดาทั่วไปคือ r w x ไม่เคย s มาก่อน ก็เลยงงไปเลย
เคยชินแต่วิธีคิดคำนวนค่า mod แบบธรรมดา จนชินคือ

r = 4
w = 2
x = 1

ถ้าต้องการค่า mod เป็น rwx = 4 + 3 + 1 = 7

ถ้าต้องการคำหนด mod ของไฟล์เป็น rwxr-xr-x

ก็ตั้งค่า mod เป็น 755

เวลาจะเปลี่ยนค่า mod ของไฟล์ให้เป็น rwxr-xr-x ก็ใช้คำสั่ง

# chmod 755 <filename>

แต่วันนี้จอ mod ที่มีค่าเป็น s เช่น rwxr-sr-x คำนวนไม่ถูกเลย เคยใช้แต่คำสั่งนี้จนชินเจอแบบนี้ก็ไปไม่ถูกเหมือนกัน คงต้องพึ่ง Mr.google อีกรอบ ได้คำตอบมาว่า มันมีวิธีเปลี่ยม mod แบบแสนธรรมดาๆ ที่ผมเองไม่เคยนึกถึงเลยคือ

# chmod u=rwx,g=rs,o=rx <filename>

แค่นี้ก็เรียบร้อย

Ubuntu : useradd

การใส่ชื่อ user เข้าไปในระบบ จริงๆ ก็ไม่ได้เป็นเรื่องยากเย็นอะไรสำหรับผู้ที่เป็น Admin

แต่วันนี้เกิดความสับสนเกิดขึ้นขึ้นนิดหน่อย ม้นคงเป็นเรีืองของความแตกต่าง และความคุ้นเคย

เนื่องจากต้องดูแลเครื่อง หลายเครื่อง บางเครื่องก็เป็นพวกตระกูล Red hat บางเครื่องก็เป็น Ubuntu ก็เลยเกิดความสับสนกันนิดหน่อยในเรื่องความแตกต่างในการ Add user

สำหรับ Red hat นั้นการ Add user ก็ไม่ได้มีอะไรเอาอย่างสะดวกคนทำไว้ก่อนเลยคือ

สร้างชื่อผู้ใช้ใหม่ก่อนเลย

# useradd <new username>

จากนั้นก็ค่อยกำหนด password กันทีหลัง ระบบมันก็จะทำการสร้าง Home directory และ Group ให้เลยโดยอัตโนมัติ

แต่สำหรับ Ubuntu มันก็มากพิธีนิดหน่อย โดยขั้นแรกต้องทำการสร้าง Group ให้กับ user ก่อนในกรณีที่ต้องการใช้ Group ใหม่

# groupadd 

จากนั้นก็ค่อยทำการสร้าง User ขึ้นมาอีกทีหนึ่งโดยใสไว้ใน Group ที่เราเพิ่งสร้างขึ้น

# useradd -g <group name> <new user name>

เมื่อได้ user ใหม่แล้วก็ไปสร้าง Home directory ให้กับ user ใหม่ด้วยที่ /home

# sudo mkdir /home/<user name>

ทำการให้สิทธิสำหรับอ่านเขียน กับ user ด้วย

#chown -R <user name> <home-dir>
#chgrp -R <user name> <home-dir>

Ubuntu : iptables rule

เป็นความรู้ที่ได้รับจากพี่ต๊อกถ่ายทอดมาให้อีกที เป็นเรื่องเกี่ยวกับการตั้งกฏของโปรแกรม iptables ใน Ubuntu

ซึ่งโดยปรกตินั้นเจ้า Ubuntu มันก็จะมีโปรแกรม iptables ติดตั้งมาให้เลยตอนที่ลงโปรแกรม แต่ว่ามันไม่ได้สร้างกฏเกณฑ์อะไรมาให้ทั้งนั้น ซึ่งก็คือมันไม่สามารถป้องกันอะไรได้เลย (แล้วมันจะติดมาให้ทำไมหว่า)

เมื่อก่อนเคยใช้ linux ตระกูลพวก Red hat ซึ่งถ้าหากต้องการเขียนกฏเกณฑ์อะไรของ Firewall ก็เข้าไป edit กฏเอาตรงเลยที่ /etc/sysconfig แล้วเปิดไฟล์ iptables edit กฏกันตรงๆ เลย

แต่พอมาใช้ Ubuntu มันกลับไม่มีเจ้าไฟล์นี้มาให้ คราวนี้ก็ไปไม่ถูกเลยสิครับท่าน เลยไม่ได้ทำอะไรกับ firewall ทั้งนั้น

แล้วความซวยก็มาถึง เหมือนนิยายนำ้เน่าเลย

เหมือนโดนล้วงคอ

คุมเครื่่อง Server อยู่มาเป็นปีเป็นชาติ

สุดท้ายโดนจนได้ เจอมือดีมันเข้ามาล้วงข้อมูลในเครื่อง Server เลยแถมมันยังลบข้อมูลเราด้วย

สุดท้ายจับไม่ได้ไล่ไม่ทัน ก็ต้องยอมมันไป ต้องเสียเวลามากู้ระบบอีก เอาข้อมูลกลับมาอีก เหนื่อยเลย

Syndicate content