Archive for June, 2008

Decrease the time for rebuilding the RAID 1 array

Friday, June 27th, 2008

เมื่อต้องการลดเวลาการ rebuild Raid 1 เราสามารถใช้คำสั่งด้านล่างนี้ได้ครับ

#mdadm -C /dev/md0 -l1 -n2 /dev/sda1 /dev/sda2 –bitmap=internal

–bitmap (Write-intent bitmap) จะช่วยลดเวลาการ Sync ได้โดยถ้าเกิด disk offline temporarily, kernel crash จะทำการ Sync เฉพาะ Block ที่ถูกแก้ไขเท่านั้น แต่ถ้า block ไหนไม่ได้ถูก Sync จะถูก copy มาแทน

–bitmap=internal หมายถึงการเก็บ metadata ไว้ที่ Raid เลย

Tags: Decrease time rebuilding raid, Raid, RAID 1, rebuild RAID

Re-shape or Grow a Raid 5 array.

Friday, June 27th, 2008

การเพิ่มเนื้อที่ในการทำ Raid Software ของทาง linux นั้นมีการแก้ไขที่ไม่ยากอย่างที่คิด โดยสมมติให้เรามีการทำ Software Raid 5 อยู่ 1 deivce คือ /dev/md0 และมีจำนวนของ HDD ที่ทำ Raid 5 อยู่ทั้งหมด 3 ลูก และเราต้องการเพิ่มเนื้อเนื่องจากสาเหตุใดก็ตามแต่ เราสามารถทำได้โดยเพิ่ม  HDD เข้ามาตามจำนวนที่ต้องการ (ขอเน้นนิดนะครับ HDD ใหม่ควรที่จะมีเนื้อที่เท่ากับ HDD เดิมที่ใช้ทำ Raid อยู่) โดยผมสมมติว่าต้องการเพิ่ม HDD 1 ลูก ชื่อ device /dev/sdd1 นะครับ เมื่อทำการเพิ่ม HDD เข้าไปแล้ว ให้ใช้คำสั่งด้านล่างนี้เพื่อเพิ่ม HDD เข้าสู่ Raid device

#mdadm /dev/md0 -a /dev/sdd1

จากนั้นให้ run คำสั่งด้านล่างเพื่อเพิ่มขนาดของ Raid device โดยที่

-n คือจำนวนของ HDD ทั้งหมดของ Raid Device

–backup-file คือ การ save critical section เพื่อป้องกันการเกิดเหตุการณ์ล้มเหลว แล้วจะไม่เกิดอันตรายต่อข้อมูลของเรา

#mdadm -G /dev/md0 -n4 –backup-file=/tmp/critical-section

ขั้นตอนสุดท้ายให้ทำการ Resize Filesystem ครับ โดยใช้คำสั่ง

#resize2fs /dev/md0

เมื่อเสร็จทุกขั้นตอนแล้วให้ทำการรันคำสั่ง

#cat /proc/mdstat

Tags: Grow a Raid 5, Raid, Raid 5, Re-shape Raid 5

How to enable xdmcp

Friday, June 20th, 2008

เมื่อต้องการที่จะเปิดการทำงานของ xdmcp ในปัจจุบันไฟล์ config ของ xdmcp ได้ถูกเปลี่ยนแปลงไป จากเดิมอยู่ที่ /etc/X11/gdm/gdm.conf มาเป็น /etc/gdm/custom.conf การเปิด xdmcp นั้นให้แก้ไขไฟล์นี้ โดยแก้ไขในส่วนด้านล่างของข้อความ xdmcp ให้มีคำว่า

Enable=true

หรืออีกวิธีคือใช้ tool แบบ gui โดยรัน
#gdmsetup

เมื่อทำการแก้ไขเสร็จเรียบร้อยแล้ว อย่าลืมรันคำสั่ง
#gdm-restart

ด้วยนะครับ

Tags: xdmcp

Other Virtual network interfaces go down when bring down virtual network interfaces

Friday, June 20th, 2008

เคยเกิดปัญหาไหม ถ้าเราทำการสร้าง Virtual network interfaces ขึ้นมาหลายๆ interface และพบว่าเมื่อเรา down Virtual network interfaces บาง Virtual network interfaces จะทำให้ Virtual network interfaces อื่นเกิดการ down ไปพร้อมกัน อาการที่เกิดขึ้น เมื่อเรามี virtual network interfaces ทั้งหมด 4 virtual network interfaces ดังนี้ eth0:0, eth0:1, eth0:2 และ eth0:3 และเราต้องการ down eth0:0 และใช้คำสั่ง

#ifdown eth0:0

จะเกิดการ down ที่ eth0:1, eth0:2 และ eth0:3 ด้วย เนื่องจากว่าเกิดจากบักที่ glibc จะทำให้เมื่อเรา down virtual network interface ที่หมายเลขหนึ่งๆ จะทำให้ virtual network interface ที่มีหมายเลขสูงกว่า down ไปด้วย ในที่นี้ก็คือ virtual network interface eth0:1, eth0:2 และ eth0:3 จะ down ไปด้วย

อีกตัวอย่างนึง เราต้องการ down eth0:2 และใช้คำสั่ง

#ifdown eth0:2

จะเกิดการ down ที่ eth0:3

ทางแก้ไขก็คือ upgrade glibc อย่างเดียวเลยครับ

Tags: Network, network virtual network interface, Virtual network interface

Show line numbers in vi/vim editor.

Wednesday, June 18th, 2008

ในบางครั้งเราต้องการที่จะค้นหาข้อความที่อยู่ในบรรทัดใดบรรทัดหนึ่งของไฟล์ที่ต้องการแก้ไข ซึ่งครั้งหนึ่งผมก็เคยต้องการค้นหาว่าบรรทัดที่เกิด error ตามที่ Log แสดงออกมานั้นมีข้อมูลอะไรอยู่ ซึ่งตอนแรกๆก็ไม่ได้ค้นหาวิธีว่ามันทำอย่างไรให้แสดงเลขบรรทัดออกมา ช่วงนั้นก็อาศัยความถึกเข้าสู้ด้วยการนับบรรทัดเอา ในบทความนี้ผมจะมาบอกวิธีีการทำให้โปรแกรม vi/vim แสดงเลขบรรทัดและยกเลิกแสดงเลขบรรทัดว่ามันง่ายแค่นิดเดียว เอาละครับมาเริ่มกันเลยละกัน

ถ้าต้องการแสดงเลขบรรทัดให้พิมพ์คำว่า
:set number หรือ :set nu

ถ้าต้องการยกเลิกการแสดงเลขบรรทัดให้พิมพ์คำว่า
:set nonum หรือ :set nonumber

** ข้อสำคัญจะต้องอยู่ใน command mode ของ vi/vim (ผมไม่รู้ว่าเรียกว่าโหมดอะไรแต่ขอเรียกอย่างงี้ละกัน) ถ้ายังไม่แน่ใจว่าอยู่หรือยังให้กด Esc ย้ำไปสองครั้งก่อนพิมพ์คำสั่งข้างต้นนะครับ :)

Tags: line numbers, vi, vim

Increase the maximum file descriptors for Squid

Friday, June 13th, 2008

ถ้า squid คุณเกิดปัญหาหรือ error message ขึ้นว่า WARNING! Your cache is running out of filedescriptors ในไฟล์ cache.log แสดงว่า Squid version ที่ใช้อยู่ได้ compile ให้ไฟล์ file descriptors ให้สามารถใช้ได้มากสุด 1024 ซึ่งปัญหานี้เราไม่สามารถแก้ไขด้วยวิธีการใช้ ulimit ได้โดยตรง

ใน Squid ที่ support จะมี option max_filedesc เพิ่มขึ้นมาเพื่อใช้ในกาีรแก้ไขปัญหานี้

Linux ที่ support (ตอนนี้ทราบแต่ทาง Red Hat)

Red Hat Enterprise Linux 3: squid-2.5.STABLE3-6.3E.18
Red Hat Enterprise Linux 4: squid-2.5.STABLE14-1.4E
Red Hat Enterprise Linux 5

ส่วนวิธีการแก้ไขนั้นเราสามารถทำได้ตามขั้นตอนข้างล่างนี้ได้เลยครับ

1. แก้ไขไฟล์ /etc/security/limits.conf โดยให้เพิ่มข้อความด้านล่างเข้าไปในไฟล์

* - nofile 4096

2. ทำการ re-login (กด Ctrl-D ก็ได้ครับ) เข้าสู่ระบบให้เพื่อให้ทำการโหลด Config ค่าที่ได้แก้ไขไปเมื่อกี้ จากนั้นให้พิมพ์เพื่อทำการตรวจสอบว่าค่าที่ได้แก้ไขถูกโหลดขึ้นมาแล้ว

# ulimit -a
open files (-n) 4096

3. แก้ไขไฟล์ /etc/squid/squid.conf แล้วเพิ่มค่าด้านล่างเข้าไป

Tags: file descriptors, Squid

Reduce a non-root LVM.

Wednesday, June 4th, 2008

การลดขนาดของ LVM สามารถที่ไม่ไม่ใช้ root user ทำก็ได้ ซึ่งจากตัวอย่างนี้จะสมมติการลดขนาดของ LVM ที่มีเนื้อที่จำนวน 10GB โดยต้องการที่จะลดขนาดของ LVM ให้มีขนาดเหลือ 8GB โดยสมมติว่าเราได้ Mount LVM นี้ใน directory /data ขั้นตอนการลดขนาดสามารถทำตาม step ข้างล่างนี้ได้เลยครับ

ขั้นที่ 1. ให้ทำการ umount ข้อมูลก่อนเพื่อป้องกันไม่ให้ OS ใช้งาน LVM นี้
$ umount /data

ขั้นที่ 2. ทำการลดขนาด file system ก่อน ซึ่งขั้นตอนนี้สำคัญมากถ้าเราไม่ทำการลดขนาดของ file system ก่อนจะทำให้อาจเกิดความเสียหายต่อ data ของเราได้
$ resize2fs /dev/vg0/LV 8G // 8G นี้คือขนาดที่เราต้องการจะลด

ขั้นที่ 3. ทำการลดขนาดของ LV โดยใช้คำสั่ง
$ lvreduce -L -2G /dev /vg0/LV // -2G คือขนาดที่เราต้องการลบออกจาก LV

ขั้นที่ 4. ทำการ mount ข้อมูล
$ mount /data

ขั้นที่ 5. ลองใช้คำสั่ง df -h เพื่อตรวจสอบขนาดหลังการลด

คำเตือน!! เมื่อทำการลดขนาดของ LVM ควรที่จะ backup ก่อนทุกครั้ง และห้ามลดขนาดของ LV มากกว่าเนื้อที่ที่เหลืออยู่.

Tags: LVM

Sponsor Links

Find entries :