Kernel | SpaLinux.com - สปาลีนุกซ์
คำสั่งเปิด ปิดไฟ LED ของ Thinkpad
Sunday 14 October 2012 @ 12:28 am

ถือว่าสนุกๆ ครับ บทความนี้จะแสดงการใช้คำสั่งเปิด/ปิด ไฟ LED ที่มีอยู่บนเครื่อง notebook รุ่น Thinkpad

ลองเล่นกันดูครับ บางคนอาจนำไปประยุกต์ใช้ในการแจ้งเตือนต่างๆ เข่นมีอีเมล์ใหม่เข้ามาได้

read more…




ดูข้อมูล BIOS ด้วยคำสั่ง dmidecode บนลีนุกซ์
Saturday 1 September 2012 @ 2:47 pm

จากที่เคยเขียนเรื่อง คำสั่งตรวจสอบฮาร์ดแวร์ของเครื่อง

วันนี้ขอเพิ่มเติมการใช้คำสั่ง dmidecode เพื่อดูข้อมูล BIOS บนลีนุกซ์  โดยไม่จำเป็นต้องรีบู๊ตเครื่องแล้วกดปุ่มเพื่อเข้าเมนู BIOS

ซึ่งถึงแม้จะดูค่อนข้างยาก แต่ข้อมูลที่แสดงจากคำสั่งนี้จะค่อนข้างละเอียด มีทั้งข้อมูล BIOS, CPU, Memory, PCI Slot ทั้งชื่อรุ่น เวอร์ชั่นที่ติดตั้งอยู่

read more…




คำสั่งตรวจสอบฮาร์ดแวร์ของเครื่อง
Saturday 28 April 2012 @ 5:36 pm

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

ในที่นี้จะแนะนำคำสั่งเพื่อตรวจสอบฮาร์ดแวร์หลัก 3 ส่วนคือ CPU, Memory และ Disk

read more…




System clock uses UTC กับเวลาของเครื่องลีนุกซ์
Monday 16 April 2012 @ 9:39 pm

ตอนติดตั้ง CentOS 6 จะมีหน้าจอให้  เลือก time zone เพื่อเลือกโซนเวลาที่เครื่องลีนุกซ์ตั้งอยู่ ในประเทศไทย ก็เลือกเป็น Asia/Bangkok

ในหน้าจอเดียวกันนี้ ด้านล่างซ้ายจะมีให้ออปชั่น “System clock uses UTC” ให้เลือก โดยดีฟอลต์จะคลิ้กเลือกไว้

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

เลยทดสอบการติดตั้งสองครั้ง โดยครั้งแรกจะคลิ้กเลือก และครั้งที่สองจะไม่เลือก เพื่อดูผลกระทบกับเวลาของเครื่องเมื่อบู๊ตเครื่องหลังจากติดตั้งเสร็จ

read more…




เปลี่ยนวันเวลาบนลีนุกซ์ด้วยคำสั่ง date
Monday 16 April 2012 @ 4:03 pm

วันเวลาบนลีนุกซ์ถือเป็นเรื่องสำคัญ ที่สมควรจะตั้งให้ตรงกับเวลามาตรฐาน ไม่เช่นนั้น โปรแกรมต่างๆ จะเก็บเวลาไม่ถูกต้อง ทำให้การตรวจสอบการทำงานย้อนหลังมีปัญหา

วิธีที่ดีที่สุดเพื่อให้เวลาของเครื่องลีนุกซ์ตรงกับเวลามาตรฐานคือติดตั้งและคอนฟิก NTP

แต่ถ้าไม่สามารถคอนฟิกเช่น ไม่สามารถต่อเชื่อมอินเตอร์เน็ต เพื่อ sync กับ NTP Server มาตรฐาน

สามารใช้คำสั่ง date  เพื่อเปลี่ยนเวลาของเครื่องลีนุกซ์ให้เป็นเวลาที่ต้องการ ใกล้เคียงกับเวลามาตรฐานได้

read more…




upgrade kernel บน CentOS 5.6
Sunday 14 August 2011 @ 11:13 pm

ด้วยเหตุผลทางด้านประสิทธิภาพ ต้องการลงโปรแกรม library หรือ driver ของอุปกรณ์บางตัว ที่ต้องใช้ kernel เวอร์ชั่นใหม่

ในบทความนี้ ขอแนะนำวิธีการ upgrade kernel บน CentOS 5.6  โดยการดาวน์โหลดไฟล์ rpm แล้วนำมาติดตั้งเองด้วยคำสั่ง rpm

read more…




กระจายงาน Interrupts ที่ได้รับ ให้ Multi-CPU, Cores
Monday 30 May 2011 @ 12:01 am

หากคุณประสบปัญหา ssh login เข้าเครื่อง Linux Server แล้วต้องรอหลายวินาที กว่า prompt login จะขึ้น

แต่หลังจาก login เข้าไปในระบบได้ ก็สามารถรันคำสั่งต่างๆ ทำงานได้ ไม่ได้ช้ามากแต่ประการใด

บทความนี้อาจช่วยคุณแก้ไขปัญหาได้

read more…




การใช้งาน DRBD เบื้องต้น
Saturday 6 February 2010 @ 6:09 pm

จากบทความ ติดตั้งและคอนฟิก DRBD  เราได้คอนฟิกเป็นแบบ Single-primary mode คือ ณ เวลาใดเวลาหนึ่ง มีเครื่องเดียวเท่านั้นที่สามารถ อ่าน เขียน ข้อมูลได้

ดังนั้นขณะที่เครื่องที่ 1 (centos54-a) ทำหน้าที่เป็น primary ของดิสก์ drbd0 อยู่  เครื่องที่ 2 (centos54-b) จะไม่สามารถ mount ดิสก์ drbd0 นี้ขึ้นมาใช้งานได้

ในบทความนี้จะแสดงการทดสอบใช้คำสั่งเพื่อเปลี่ยนโหมด Primary, Secondary ระหว่างเครื่องทั้งสอง

ตรวจสอบสถานะบนเครื่อง centos54-a

[root@centos54-a ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C  /export  ext3
[root@centos54-a ~]# df -h /export
Filesystem            Size  Used Avail Use% Mounted on
/dev/drbd0            950M   18M  885M   2% /export

ทดสอบ mount ดิสก์บนเครื่อง centos54-b

[root@centos54-b ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Secondary/Primary  UpToDate/UpToDate  C
[root@centos54-b ~]# mount /dev/drbd0 /export
mount: block device /dev/drbd0 is write-protected, mounting read-only
mount: Wrong medium type

ในกรณีที่ต้องการเปลี่ยนให้เครื่องที่ 2 (centos54-b) ทำหน้าที่เป็น primary  เช่นในกรณีที่ต้องการซ่อมบำรุงเครื่องที่ 1 สามารถทำได้ดังนี้

บนเครื่องที่ 1 ปิดเซอร์วิส DRBD

[root@centos54-a ~]# service drbd stop
Stopping all DRBD resources:
.
[root@centos54-a ~]# service drbd status
drbd not loaded

ตรวจสอบสถานะบนเครื่องที่ 2 หลังจากปิดเซอร์วิสบนเครื่องที่ 1

[root@centos54-b ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs            ro                 ds                 p  mounted  fstype
0:r0   WFConnection  Secondary/Unknown  UpToDate/DUnknown  C

แม้เครื่อง Primary ปิดไปแล้ว บนเครื่องที่ 2 ที่ยังอยู่ในโหมด Secondary ก็ยัง mount ดิสก์ ไม่ได้

[root@centos54-b ~]# mount /dev/drbd0 /export
mount: block device /dev/drbd0 is write-protected, mounting read-only
mount: Wrong medium type

ต้องเปลี่ยนสถานะบนเครื่องที่ 2 ให้เป็น primary ด้วยคำสั่ง drbdadm primary

[root@centos54-b ~]# drbdadm primary all

ตรวจสอบสถานะบนเครื่องที่ 2

[root@centos54-b ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs            ro               ds                 p  mounted  fstype
0:r0   WFConnection  Primary/Unknown  UpToDate/DUnknown  C

เมื่ออยู่ในโหมด primary แล้ว ก็สามารถ mount ดิสก์ขึ้นมาใช้งานได้

[root@centos54-b ~]# mount /dev/drbd0 /export
[root@centos54-b ~]# df -h /export
Filesystem            Size  Used Avail Use% Mounted on
/dev/drbd0            950M   18M  885M   2% /export

ทดลองสร้างไฟล์ในดิสก์ drbd0

[root@centos54-b ~]# cd /export/
[root@centos54-b export]# ls
lost+found
[root@centos54-b export]# echo "hello world from node 2" > test-file-on-node-2.txt
[root@centos54-b export]# ls -l
total 20
drwx------ 2 root root 16384 Feb  6 15:46 lost+found
-rw-r--r-- 1 root root    24 Feb  6 17:17 test-file-on-node-2.txt

รันเซอร์วิส DRBD บนเครื่องที่ 1 ขึ้นมาอีกครั้ง ตอนนี้เครื่องที่ 1 จะทำหน้าที่เป็น Secondary และจะทำการ replicate ข้อมูลมาจากเครื่องที่ 2 (Primary) โดยอัตโนมัติ

[root@centos54-a ~]# service drbd start
Starting DRBD resources: [ d(r0) s(r0) n(r0) ].
[root@centos54-a ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Secondary/Primary  UpToDate/UpToDate  C

บนเครื่องที่ 2 เปลี่ยนให้เป็นโหมด Secondary

[root@centos54-b ~]# drbdadm secondary all
0: State change failed: (-12) Device is held open by someone
Command 'drbdsetup 0 secondary' terminated with exit code 11

หากมีการเรียกใช้ดิสก์ drbd อยู่ จะไม่สามารถเปลี่ยนโหมดจาก Primary ไปเป็น Secondary ได้ ต้อง umount ดิสก์ออกไปก่อนถึงจะเปลี่ยนโหมดได้

[root@centos54-b ~]# umount /export
[root@centos54-b ~]# drbdadm secondary all

ตรวจสอบสถานะบนเครื่องที่ 2

[root@centos54-b ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs         ro                   ds                 p  mounted  fstype
0:r0   Connected  Secondary/Secondary  UpToDate/UpToDate  C

เปลี่ยนโหมดบนเครื่องที่ 1 ให้เป็น Primary เพื่อเรียกใช้ดิสก์ได้

[root@centos54-a ~]# drbdadm primary all
[root@centos54-a ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.2 (api:88/proto:86-90)
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by mockbuild@v20z-x86-64.home.local, 2009-08-29 14:07:55
m:res  cs         ro                 ds                 p  mounted  fstype
0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C

mount ดิสก์ และตรวจสอบไฟล์ที่อยู่ใน drbd0 จะเห็นไฟล์ที่สร้างจากเครื่องที่ 2

[root@centos54-a ~]# mount /dev/drbd0 /export
[root@centos54-a ~]# cd /export/
[root@centos54-a export]# ls -l
total 20
drwx------ 2 root root 16384 Feb  6 15:46 lost+found
-rw-r--r-- 1 root root    24 Feb  6 17:17 test-file-on-node-2.txt
[root@centos54-a export]# cat test-file-on-node-2.txt
hello world from node 2

ตรวจสอบไฟล์ /var/log/messages

เมื่อมีปัญหาเกี่ยวกับการใช้ DBRD นอกจากการใช้คำสั่ง service เพื่อตรวจสอบสถานะแล้ว ไฟล์ /var/log/messages จะแสดงการเปลี่ยนแปลงทั้งหมดของ DRBD ที่เกิดขึ้น ซึ่งสามารถนำมาใช้ช่วยในการแก้ปัญหาได้

ตัวอย่างข้อความในไฟล์ /var/log/messages ที่เกิดขึ้น เมื่อมีการเปลี่ยนโหมด

[root@centos54-a ~]# tail /var/log/messages
...
Feb  6 17:19:38 centos54-a kernel: block drbd0: peer( Primary -> Secondary )
Feb  6 17:21:04 centos54-a kernel: block drbd0: role( Secondary -> Primary )
...

ข้อมูลอ้างอิง




ติดตั้งและคอนฟิก DRBD
Saturday 6 February 2010 @ 4:40 pm

DRBD (Distributed Replicated Block Device) เป็นโปรแกรมเพื่อใช้ในการ replicate ข้อมูลดิสก์ที่อยู่คนละเครื่องกัน ผ่านทางเน็ตเวิร์ก โดยจะทำในระดับ block ของดิสก์

เมื่อมีการเปลี่ยนแปลงข้อมูลที่อยูในดิสก์เครื่องหนึ่ง (primary) การเปลี่ยนแปลงนั้นจะถูก replicate ไปยังอีกเครื่อง (secondary) โดยอัตโนมัติ

DRBD ประกอบด้วยสองส่วนคือ

1. Kernel module – DRBD ทำหน้าที่ใน kernel โดยจะสร้าง virtual block device คั่นกลางระหว่าง physical disk กับ filesystem ที่สร้างอยู่ ไม่ว่าจะเป็น ext3, ext4, xfs
2. User space administration tools – เป็นโปรแกรมที่ช่วยในการจัดการ DRBD ได้ง่ายขึ้น หลักๆ จะเป็น drbdadm

ในบทความนี้จะแสดงการติดตั้งโปรแกรม DRBD และคอนฟิกเป็นแบบ Single-primary mode คือ ณ เวลาใดเวลาหนึ่ง มีเครื่องเดียวเท่านั้นที่สามารถ อ่าน เขียน ข้อมูลได้

คำเตือน ติดตั้งและคอนฟิก DRBD บนเครื่องทดสอบให้เข้าใจก่อน เพราะบางคำสั่งอาจกระทบข้อมูลดิสก์หรือ partition ที่มีอยู่ในเครื่องได้ ทำให้ข้อมูลเสียหายได้

read more…




แก้ไขหน้าจอการบู๊ตของ Fedora 10
Friday 19 December 2008 @ 11:52 pm

หลังจากติดตั้ง Fedora 10 เมื่อบู๊ตเครื่องขึ้นมา จะมีแถบสี วิ่งจากซ้ายไปขวา ไปชนคำว่า Fedora 10 โดยไม่มีข้อความเกี่ยวกับการบู๊ตขึ้นมาเลย จะมีอีกทีก็หลังจากบู๊ตเสร็จ ขึ้นหน้า login

ส่วนตัวผู้เขียนแล้ว ไม่ชอบหน้าจอการบู๊ตแบบนี้ คือบางครั้งหน้าจอค้างไปนาน เราไม่สามารถรู้ได้เลยว่าไปติดปัญหาที่ตรงไหน ไม่เหมือนกับการขึ้นข้อความแสดงการโหลดส่วนต่างๆ ดังนั้นเลยหาวิธีแก้ไข ให้กลับมาเหมือนเดิม

read more…




Older Posts »