<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SpaLinux.com &#187; Filesystem</title>
	<atom:link href="http://spalinux.com/category/filesystem/feed" rel="self" type="application/rss+xml" />
	<link>http://spalinux.com</link>
	<description>Resources for Relaxing Linux System Administrators</description>
	<lastBuildDate>Sat, 21 Jan 2012 16:07:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>ทดสอบติดตั้ง CentOS 6.0</title>
		<link>http://spalinux.com/2011/08/review-installation-centos-6-0</link>
		<comments>http://spalinux.com/2011/08/review-installation-centos-6-0#comments</comments>
		<pubDate>Tue, 02 Aug 2011 15:08:54 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Linux Installation]]></category>
		<category><![CDATA[CentOS 6.0]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1411</guid>
		<description><![CDATA[หลังจาก ทดสอบ Red Hat Enterprise Linux 6.0  บทความนี้ขอนำมาเปรียบเทียบกับการติดตั้ง CentOS 6.0 โดยใช้แผ่นดีวีดี เผื่อหวังว่าผู้สนใจได้ข้อมูลในเบื้องต้น ประกอบการตัดสินใจในการใช้งาน คำเตือน การติดตั้ง Linux ใหม่บนเครื่อง อาจทำให้ข้อมูลในดิสก์ที่มีอยู่ สูญหายทั้งหมด สำหรับการติดตั้ง CentOS 6.0 นี้ เช่นเดียวกับ  RedHat แนะนำให้ใช้การติดตั้งแบบ Graphical Mode เท่านั้น ถึงจะสามารถเลือกวิธีการติดตั้งขั้นตอนต่างๆ ได้ครบถ้วน หากใช้แบบ Text Mode จะทำได้บางส่วนเท่านั้น การติดตั้งแบบ Graphical Mode ต้องใช้ Memory มากกว่า 512 MB หน้าจอ error “You do not have enough RAM to use the graphical [...]]]></description>
			<content:encoded><![CDATA[<p>หลังจาก <a href="http://spalinux.com/2010/12/review_red_hat_enterprise_linux_6-0">ทดสอบ Red Hat Enterprise Linux 6.0</a>  บทความนี้ขอนำมาเปรียบเทียบกับการติดตั้ง CentOS 6.0 โดยใช้แผ่นดีวีดี เผื่อหวังว่าผู้สนใจได้ข้อมูลในเบื้องต้น ประกอบการตัดสินใจในการใช้งาน</p>
<p><span id="more-1411"></span></p>
<p><span style="color: #ff0000;">คำเตือน การติดตั้ง Linux ใหม่บนเครื่อง อาจทำให้ข้อมูลในดิสก์ที่มีอยู่ สูญหายทั้งหมด</span></p>
<p>สำหรับการติดตั้ง CentOS 6.0 นี้ เช่นเดียวกับ  RedHat แนะนำให้ใช้การติดตั้งแบบ Graphical Mode เท่านั้น ถึงจะสามารถเลือกวิธีการติดตั้งขั้นตอนต่างๆ ได้ครบถ้วน หากใช้แบบ Text Mode จะทำได้บางส่วนเท่านั้น</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c01.png"><img class="alignnone size-full wp-image-1416" title="c01" src="http://spalinux.com/wp-content/uploads/2011/08/c01.png" alt="" width="640" height="480" /></a></p>
<p>การติดตั้งแบบ Graphical Mode ต้องใช้ Memory มากกว่า 512 MB</p>
<p>หน้าจอ error “You do not have enough RAM to use the graphical installer. Starting text mode”  เมื่อทดลองติดตั้งบนเครื่องที่มี Memory 512 MB</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c02.png"><img class="alignnone size-full wp-image-1417" title="c02" src="http://spalinux.com/wp-content/uploads/2011/08/c02.png" alt="" width="720" height="400" /></a></p>
<p>หลังจากที่เพิ่ม Memory ของเครื่องเป็น 1 GB ก็สามารถบู๊ตเพื่อดิดตั้งแบบ Graphical Installer ได้</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c03.png"><img class="alignnone size-full wp-image-1418" title="c03" src="http://spalinux.com/wp-content/uploads/2011/08/c03.png" alt="" width="800" height="600" /></a></p>
<p>สามารถเลือกติดตั้งบนดิสก์ได้หลายแบบ ทั้ง disk ธรรมดา IDE, SATA หรือ SAN, iSCSI</p>
<p>ถ้าหากใช้ดิสก์ Internal Disk ในเครื่อง PC หรือ Server ทั่วไป ไม่ว่าเป็น IDE, SATA  ต้องเลือก “Basic Storage Devices”</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c04.png"><img class="alignnone size-full wp-image-1419" title="c04" src="http://spalinux.com/wp-content/uploads/2011/08/c04.png" alt="" width="800" height="600" /></a></p>
<p>ใส่ชื่อ Hostname ของเครื่อง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c05.png"><img class="alignnone size-full wp-image-1420" title="c05" src="http://spalinux.com/wp-content/uploads/2011/08/c05.png" alt="" width="800" height="600" /></a></p>
<p>สังเกตว่าในหน้านี้จะมีปุ่ม [Configure Nework] เพื่อกดเข้าสู่การคอนฟิก Network ของเครื่องได้</p>
<p>ตัวอย่างการกดปุ่ม [Configure Network] แล้วใส่ค่าคอนฟิก Network เช่น IP Address, Netmask, Gateway, DNS servers</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c06.png"><img class="alignnone size-full wp-image-1421" title="c06" src="http://spalinux.com/wp-content/uploads/2011/08/c06.png" alt="" width="800" height="600" /></a></p>
<p>หน้าจอเลือก Time Zone ของเครื่อง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c07.png"><img class="alignnone size-full wp-image-1422" title="c07" src="http://spalinux.com/wp-content/uploads/2011/08/c07.png" alt="" width="800" height="600" /></a></p>
<p>เลือกคอนฟิก disk partition ที่จะติดตั้ง ในที่นี้จะทดลองเลือกแบบ “User All Space” เพื่อลบ partition ที่มีอยู่เดิมทั้งหมดแล้วช่วยคอนฟิก partition ให้โดยอัตโนมัติ</p>
<p><span style="color: #ff0000;">คำเตือน ทำความเข้าใจก่อนเลือก เพราะข้อมูลเดิมที่มีอยู่ในดิสก์จะสูญหายทั้งหมด</span></p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c08.png"><img class="alignnone size-full wp-image-1423" title="c08" src="http://spalinux.com/wp-content/uploads/2011/08/c08.png" alt="" width="800" height="600" /></a></p>
<p>หากเลือก [x] Review and modify partitioning layout  หน้าจอจะขึ้นให้สามารถปรับเปลี่ยน partition ได้</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c09.png"><img class="alignnone size-full wp-image-1424" title="c09" src="http://spalinux.com/wp-content/uploads/2011/08/c09.png" alt="" width="800" height="600" /></a></p>
<p>ในเวอร์ชั่น 6.0 นี้ จะเพิ่มการสนับสนุน filesystem แบบ ext4 และ xfs</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c10.png"><img class="alignnone size-full wp-image-1425" title="c10" src="http://spalinux.com/wp-content/uploads/2011/08/c10.png" alt="" width="800" height="600" /></a><br />
มีข้อจำกัด เหมือนกับ RedHat</p>
<p>boot ไม่สามารถเลือกเป็น xfs ได้ (Fedora ก็ไม่สามารถเลือกได้)<br />
(root) ไม่สามารถเลือกเป็น xfs ได้ (Fedora สามารถเลือกได้)</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c11.png"><img class="alignnone size-full wp-image-1426" title="c11" src="http://spalinux.com/wp-content/uploads/2011/08/c11.png" alt="" width="800" height="600" /></a></p>
<p>การคอนฟิก Boot Loader</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c12.png"><img class="alignnone size-full wp-image-1427" title="c12" src="http://spalinux.com/wp-content/uploads/2011/08/c12.png" alt="" width="800" height="600" /></a></p>
<p>อย่างหนึ่งที่ค่อนข้างดี คือมี “set of software” ให้เลือกแบบต่างๆ ให้เหมาะกับการที่เราจะนำเครื่อง server นี้ไปใช้ได้ โดยเมื่อเลือกก็จะติดตั้งเฉพาะ software ที่จำเป็นสำหรับ server เช่นเมื่อเลือก Database Server ก็จะติดตั้ง MySQL, PostgreSQL ให้</p>
<p>ในที่นี้จะลองติดตั้งแบบ “Basic Server”</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c13.png"><img class="alignnone size-full wp-image-1428" title="c13" src="http://spalinux.com/wp-content/uploads/2011/08/c13.png" alt="" width="800" height="600" /></a></p>
<p>หากเลือก [x] Customize now หน้าจอจะขึ้นชื่อ software ให้เลือกเพื่อจะติดตั้งโดยละเอียด โดยจะอิงกับ “set of software” ที่เลือกมา</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c14.png"><img class="alignnone size-full wp-image-1429" title="c14" src="http://spalinux.com/wp-content/uploads/2011/08/c14.png" alt="" width="800" height="600" /></a></p>
<p>หน้าจอแสดงการติดตั้ง “Basic Server”</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c15.png"><img class="alignnone size-full wp-image-1430" title="c15" src="http://spalinux.com/wp-content/uploads/2011/08/c15.png" alt="" width="800" height="600" /></a></p>
<p>หลังจากติดตั้งเสร็จ บู๊ตเครี่องขึ้นมา หน้าจอบู๊ตเมนูแสดง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c16.png"><img class="alignnone size-full wp-image-1431" title="c16" src="http://spalinux.com/wp-content/uploads/2011/08/c16.png" alt="" width="640" height="480" /></a></p>
<p>หน้าจอแสดงการบู๊ต เปลี่ยนเป็นโทนสีฟ้า</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c17.png"><img class="alignnone size-full wp-image-1432" title="c17" src="http://spalinux.com/wp-content/uploads/2011/08/c17.png" alt="" width="720" height="400" /></a></p>
<p>หน้าจอ Login พร้อมการใช้คำสั่ง rpm เพื่อตรวจสอบจำนวน packages ที่ติดตั้ง และคำสั่ง df เพื่อตรวจสอบขนาดดิสก์ที่ใช้ไปในการติดตั้ง ประมาณ 1.3 GB</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c18.png"><img class="alignnone size-full wp-image-1433" title="c18" src="http://spalinux.com/wp-content/uploads/2011/08/c18.png" alt="" width="720" height="400" /></a></p>
<p>หน้าจอแสดงเครื่องกำลัง shutdown</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/08/c19.png"><img class="alignnone size-full wp-image-1415" title="c19" src="http://spalinux.com/wp-content/uploads/2011/08/c19.png" alt="" width="720" height="400" /></a></p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2010/12/review_red_hat_enterprise_linux_6-0">ทดสอบ Red Hat Enterprise Linux 6.0</a></li>
<li><a href="http://www.centos.org/" target="_blank">http://www.centos.org/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2011/08/review-installation-centos-6-0/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ว่าด้วยเรื่องเวลา atime, mtime, ctime ของไฟล์บน Unix</title>
		<link>http://spalinux.com/2011/06/about-unix-file-timestamp-atime-mtime-ctime</link>
		<comments>http://spalinux.com/2011/06/about-unix-file-timestamp-atime-mtime-ctime#comments</comments>
		<pubDate>Sat, 04 Jun 2011 14:15:00 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Backup]]></category>
		<category><![CDATA[Disk]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[atime]]></category>
		<category><![CDATA[ctime]]></category>
		<category><![CDATA[mtime]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1368</guid>
		<description><![CDATA[เวลาของไฟล์บน Unix มีประโยชน์อย่างมากสำหรับผู้ใช้ ไม่ว่าจะใช้ดูเพื่อหาว่า ไฟล์นี้ถูกเปลี่ยนแปลงไปเมื่อไร เก่าไป หรือใหม่กว่าอย่างไร อีกประการ ยังถูกใช้โดยโปรแกรม Backup เพื่อเลือกไฟล์สำหรับการทำ Backup แบบ Incremental คือ เลือกเฉพาะไฟล์ที่เพิ่มขึ้นใหม่ หรือไฟล์ที่ถูกเปลี่ยนแปลงเท่านั้น เวลาของไฟล์บน Unix มีอยู่ 3 ค่า คือ atime, ctime, mtime ในที่นี้จะอธิบายการเปลี่ยนแปลงของค่าเวลาต่างๆ ดังนี้ ใช้คำสั่ง date เพื่อดูเวลาที่ทดสอบ [user1@devel time]$ date Sat Jun  4 13:54:20 ICT 2011 สร้างไฟล์เปล่าๆ ด้วยคำสั่ง touch [user1@devel time]$ touch test1.txt ใช้คำสั่ง ls -l เพื่อดูข้อมูลไฟล์เบื้องต้น [user1@devel time]$ ls -l [...]]]></description>
			<content:encoded><![CDATA[<p>เวลาของไฟล์บน Unix มีประโยชน์อย่างมากสำหรับผู้ใช้ ไม่ว่าจะใช้ดูเพื่อหาว่า ไฟล์นี้ถูกเปลี่ยนแปลงไปเมื่อไร เก่าไป หรือใหม่กว่าอย่างไร</p>
<p>อีกประการ ยังถูกใช้โดยโปรแกรม Backup เพื่อเลือกไฟล์สำหรับการทำ Backup แบบ Incremental คือ เลือกเฉพาะไฟล์ที่เพิ่มขึ้นใหม่ หรือไฟล์ที่ถูกเปลี่ยนแปลงเท่านั้น</p>
<p>เวลาของไฟล์บน Unix มีอยู่ 3 ค่า คือ atime, ctime, mtime ในที่นี้จะอธิบายการเปลี่ยนแปลงของค่าเวลาต่างๆ ดังนี้</p>
<p><span id="more-1368"></span></p>
<p>ใช้คำสั่ง date เพื่อดูเวลาที่ทดสอบ</p>
<pre>[user1@devel time]$ <strong>date
</strong>Sat Jun  4 13:54:20 ICT 2011</pre>
<p>สร้างไฟล์เปล่าๆ ด้วยคำสั่ง touch</p>
<pre>[user1@devel time]$ <strong>touch test1.txt</strong></pre>
<p>ใช้คำสั่ง ls -l เพื่อดูข้อมูลไฟล์เบื้องต้น</p>
<pre>[user1@devel time]$ <strong>ls -l test1.txt
</strong>-rw-rw-r-- 1 user1 user1 0 <span style="color: #0000ff;">Jun  4 13:54</span> test1.txt</pre>
<p>ใช้คำสั่ง stat เพื่อดูข้อมูลไฟล์โดยละเอียด</p>
<pre>[user1@devel time]$ <strong>stat test1.txt
</strong>  File: `test1.txt'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 2749831     Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/   user1)   Gid: (  500/   user1)
<span style="color: #0000ff;">Access: 2011-06-04 13:54:23.000000000 +0700
Modify: 2011-06-04 13:54:23.000000000 +0700
Change: 2011-06-04 13:54:23.000000000 +0700</span></pre>
<p>หมายเหตุ เวลาที่แสดงจากคำสั่ง ls -l เป็นเวลา Modify (mtime)</p>
<h4>เวลา Access (atime)</h4>
<p>เมื่อไฟล์ถูก access หรือดูเนื้อหาภายในไฟล์  เวลา Access (atime) จะถูกปรับปรุงโดยอัตโนมัติ</p>
<p>เช่น ใช้คำสั่ง cat เพื่อเรียกดูไฟล์ เวลา Access (atime) ก็จะถูกเปลี่ยนไป ตามเวลาที่ access</p>
<pre>[user1@devel time]$ <strong>date
</strong>Sat Jun  4 13:57:35 ICT 2011</pre>
<pre>[user1@devel time]$ <strong>cat test1.txt</strong></pre>
<pre>[user1@devel time]$ <strong>ls -l test1.txt
</strong>-rw-rw-r-- 1 user1 user1 0 Jun  4 13:54 test1.txt</pre>
<pre>[user1@devel time]$ <strong>stat test1.txt
</strong>  File: `test1.txt'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 2749831     Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/   user1)   Gid: (  500/   user1)
<span style="color: #ff0000;">Access: 2011-06-04 13:57:37.000000000 +0700
</span>Modify: 2011-06-04 13:54:23.000000000 +0700
Change: 2011-06-04 13:54:23.000000000 +0700</pre>
<p>สังเกตว่า เวลาของไฟล์ จากการรันคำสั่ง ls -l ไม่เปลี่ยนแปลง เพราะ mtime ไม่เปลี่ยน</p>
<h4>เวลา Change (ctime)</h4>
<p>เมื่อมีการเปลี่ยนแปลงข้อมูลเกี่ยวกับ Inode ของไฟล์ เช่นการเปลี่ยน Owner, Group, Permission เวลา ctime จะถูกปรับปรุง</p>
<p>ตัวอย่างการเปลี่ยน permission ทำให้เวลา ctime เปลี่ยนแปลง</p>
<pre>[user1@devel time]$ <strong>date
</strong>Sat Jun  4 14:05:06 ICT 2011</pre>
<pre>[user1@devel time]$ <strong>chmod 600 test1.txt</strong></pre>
<pre>[user1@devel time]$<strong> ls -l test1.txt
</strong>-rw-rw-r-- 1 user1 user1 0 Jun  4 13:54 test1.txt</pre>
<pre>[user1@devel time]$ <strong>stat test1.txt
</strong>  File: `test1.txt'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 2749831     Links: 1
Access: (0600/-rw-------)  Uid: (  500/   user1)   Gid: (  500/   user1)
Access: 2011-06-04 13:57:37.000000000 +0700
Modify: 2011-06-04 13:54:23.000000000 +0700
<span style="color: #ff0000;">Change: 2011-06-04 14:05:09.000000000 +0700</span></pre>
<p>สังเกตว่า เวลา Access (atime), Modify (mtime) หรือเวลาจากคำสั่ง ls -l ไม่เปลี่ยนแปลงไป เพราะคำสั่ง chmod เปลี่ยนแค่ข้อมูลใน Inode</p>
<h4>เวลา Modify (mtime)</h4>
<p>เมื่อเนื้อหาในไฟล์ถูกแก้ไข เวลา Modify (mtime) จะถูกปรับปรุง ตัวอย่างเช่น </p>
<pre>[user1@devel time]$ date
Sat Jun  4 14:09:29 ICT 2011</pre>
<pre>ใช้คำสั่ง echo และ shell redirection "&gt;" เพิ่มเนื้อหาเข้าไปในไฟล์</pre>
<pre>[user1@devel time]$ <strong>echo "add more content to file" &gt;&gt; test1.txt</strong></pre>
<pre>[user1@devel time]$ <strong>ls -l test1.txt</strong>
-rw------- 1 user1 user1 25 Jun  4 14:09 test1.txt</pre>
<pre>[user1@devel time]$ <strong>stat test1.txt</strong>
  File: `test1.txt'
  Size: 25              Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 2749831     Links: 1
Access: (0600/-rw-------)  Uid: (  500/   user1)   Gid: (  500/   user1)
Access: 2011-06-04 13:57:37.000000000 +0700
<span style="color: #ff0000;">Modify: 2011-06-04 14:09:38.000000000 +0700
Change: 2011-06-04 14:09:38.000000000 +0700</span></pre>
<p>เมื่อเนื้อหาในไฟล์ถูกเปลี่ยน  เวลา Change (ctime) ก็จะถูกปรับไปด้วย</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.unix.com/tips-tutorials/20526-mtime-ctime-atime.html" target="_blank">mtime, ctime, and atime</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2011/06/about-unix-file-timestamp-atime-mtime-ctime/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>สร้าง Storage Server ง่ายๆ ด้วย FreeNAS</title>
		<link>http://spalinux.com/2011/02/create_storage_server_using_freenas</link>
		<comments>http://spalinux.com/2011/02/create_storage_server_using_freenas#comments</comments>
		<pubDate>Sat, 19 Feb 2011 09:30:48 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Backup]]></category>
		<category><![CDATA[Disk]]></category>
		<category><![CDATA[File Sharing]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[RAID]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[FreeNAS]]></category>
		<category><![CDATA[NAS]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1284</guid>
		<description><![CDATA[เดี๋ยวนี้เดินตามร้านคอมพิวเตอร์เริ่มมีอุปกรณ์ประเภท NAS (Network Attached Storage Server) ขายเป็น box สำเร็จรูป เพื่อผู้ใช้นำไปสำรองข้อมูล แชร์ไฟล์ได้หลายเครื่อง แถมบางยี่ห้อสามารถรันโปรแกรม BitTorrent เพื่อโหลดไฟล์ได้ แทนที่จะซื้อ box ใหม่ ลองหาเครื่องเก่าๆ ที่ยังพอใช้งานได้อยู่ หากขนาดพื้นที่ดิสก์เก่าไม่พอ ก็ซื้อเฉพาะฮาร์ดดิสก์เท่านั้น แล้วติดตั้งโปรแกรม FreeNAS ภายในไม่ถึง10 นาที  (ไม่รวมเวลาดาวน์โหลดไฟล์ iso ขนาด 130 กว่า MB นะ) คุณก็จะได้ Storage Server ไว้ใช้ อย่างง่ายดาย คุณสมบัติ (features) เพียบ&#8230; คำเตือน FreeNAS จะล้าง (Format) ข้อมูลทั้งหมดในดิสก์ของเครื่อง การทดลองรันแบบ LiveCD ค่าคอนฟิกที่สร้างทั้งหมดจะหายไป เมื่อมีการรีบู๊ตหรือปิดเครื่อง FreeNAS เป็นโปรแกรม Open Source พัฒนาขึ้นมาบน FreeBSD [...]]]></description>
			<content:encoded><![CDATA[<p>เดี๋ยวนี้เดินตามร้านคอมพิวเตอร์เริ่มมีอุปกรณ์ประเภท NAS (Network Attached Storage Server) ขายเป็น box สำเร็จรูป เพื่อผู้ใช้นำไปสำรองข้อมูล แชร์ไฟล์ได้หลายเครื่อง แถมบางยี่ห้อสามารถรันโปรแกรม BitTorrent เพื่อโหลดไฟล์ได้</p>
<p>แทนที่จะซื้อ box ใหม่ ลองหาเครื่องเก่าๆ ที่ยังพอใช้งานได้อยู่ หากขนาดพื้นที่ดิสก์เก่าไม่พอ ก็ซื้อเฉพาะฮาร์ดดิสก์เท่านั้น แล้วติดตั้งโปรแกรม FreeNAS ภายในไม่ถึง10 นาที  (ไม่รวมเวลาดาวน์โหลดไฟล์ iso ขนาด 130 กว่า MB นะ) คุณก็จะได้ Storage Server ไว้ใช้ อย่างง่ายดาย คุณสมบัติ (features) เพียบ&#8230;</p>
<p><span style="color: #ff0000;"><strong>คำเตือน</strong></span></p>
<ul>
<li><span style="color: #ff0000;"><strong>FreeNAS จะล้าง (Format) ข้อมูลทั้งหมดในดิสก์ของเครื่อง</strong></span></li>
<li><span style="color: #ff0000;"><strong>การทดลองรันแบบ LiveCD ค่าคอนฟิกที่สร้างทั้งหมดจะหายไป เมื่อมีการรีบู๊ตหรือปิดเครื่อง</strong></span></li>
</ul>
<p><span id="more-1284"></span></p>
<p>FreeNAS เป็นโปรแกรม Open Source พัฒนาขึ้นมาบน FreeBSD รองรับการใช้งานได้หลากหลายเช่น CIFS (Samba), FTP, NFS, TFTP, AFP, RSYNC, Unison, iSCSI (initiator and target) and UPnP. สามารถคอนฟิกดิสก์เป็นแบบ RAID (0, 1, 5), ZFS, disk encryption ได้</p>
<p>การใช้งานผ่าน Web Interface สามารถลองใช้แบบ LiveCD หรือติดตั้งลงบนดิสก์</p>
<p>ในเริ่มต้น แนะนำในลองใช้แบบ LiveCD เพื่อดูคุณสมบัติต่างๆ ของโปรแกรม</p>
<p>เลือกดาวน์โหลดไฟล์เวอร์ชั่นล่าสุดของ Stable Releases (ล่าสุดที่เขียนคือ 0.7.2) หากเครื่องสามารถลงแบบ 64-bit ได้ แนะนำให้เลือก FreeNAS-amd64-LiveCD-0.7.2.5543.iso ถ้าไม่ได้ ก็ใช้เวอร์ชั่น 32-bit คือ FreeNAS-i386-LiveCD-0.7.2.5543.iso</p>
<p>ไฟล์ที่ดาวน์โหลดจะเป็นแบบ iso คือต้องนำมา burn ลง cd ก่อนแล้วนำไปใช้บู๊ตเครื่อง</p>
<p>ในบทความนี้จะทดลองใน VMware Server</p>
<p>หน้าจอบู๊ตเครื่อง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/01-Boot_FreeNAS1.png"><img class="alignnone size-full wp-image-1302" title="01-Boot_FreeNAS" src="http://spalinux.com/wp-content/uploads/2011/02/01-Boot_FreeNAS1.png" alt="" width="720" height="400" /></a></p>
<p>หน้าจอ Console แสดงข้อมูลคอนฟิกเบื้องต้น พร้อมใช้งาน</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/02-FreeNAS_Console1.png"><img class="alignnone size-full wp-image-1301" title="02-FreeNAS_Console" src="http://spalinux.com/wp-content/uploads/2011/02/02-FreeNAS_Console1.png" alt="" width="720" height="400" /></a></p>
<p>เมื่อบู๊ตเครื่องมาถึงขั้นตอนนี้ คุณก็มี Storage Server พร้อมใช้แล้ว หากต้องการแก้ไขคอนฟิก ก็ใส่ตัวเลขเมนู เพื่อเข้าไปแก้ไขได้ เช่นต้องการแก้ไข IP address สามารถทำได้โดยเข้าเมนู 2) Set LAN IP address</p>
<p><strong>คำแนะนำ หากต้องการนำไปใช้งานจริง ต้องเลือกเมนู 9) Install/Upgrade to hard drive/flash device, etc. เพื่อเลือกติดตั้ง FreeNAS ลงบนดิสก์เลย</strong></p>
<p>ดีฟอลต์ IP address คือ 192.168.1.250</p>
<p>เปิด browser เพื่อเริ่มใช้งาน FreeNAS</p>
<p>หน้าเว็บล็อกอินของ FreeNAS  ใส่ค่า Username, Password เริ่มต้นคือ admin, freenas</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/03-FreeNAS_Login.png"><img class="alignnone size-full wp-image-1300" title="03-FreeNAS_Login" src="http://spalinux.com/wp-content/uploads/2011/02/03-FreeNAS_Login.png" alt="" width="836" height="724" /></a></p>
<p>หน้าเว็บแสดงข้อมูล System Information</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/04-System_Information.png"><img class="alignnone size-full wp-image-1299" title="04-System_Information" src="http://spalinux.com/wp-content/uploads/2011/02/04-System_Information.png" alt="" width="835" height="730" /></a></p>
<p>หน้าเว็บการจัดการดิสก์ (Disks Management)</p>
<p>ไปที่เมนู Disks -&gt; Management เพื่อแสดงข้อมูลดิสก์ที่โปรแกรม FreeNAS รู้จัก</p>
<p>เริ่มต้นจะไม่มีดิสก์ใดแสดงเลย ต้องกดเครื่องหมาย + ด้านขวามือเพื่อเพิ่มดิสก์ที่มีอยู่ในเครื่อง ให้ FreeNAS รู้จัก</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/05-Disks_Management.png"><img class="alignnone size-full wp-image-1298" title="05-Disks_Management" src="http://spalinux.com/wp-content/uploads/2011/02/05-Disks_Management.png" alt="" width="835" height="730" /></a></p>
<h4>Add Disk</h4>
<p>หน้าเว็บการเพิ่มดิสก์</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/06-Disks_Add.png"><img class="alignnone size-full wp-image-1297" title="06-Disks_Add" src="http://spalinux.com/wp-content/uploads/2011/02/06-Disks_Add.png" alt="" width="835" height="730" /></a></p>
<p>หลังจากเพิ่มดิสก์ ต้องกดปุ่ม [Apply changes] เพื่อให้คอนฟิกที่เพิ่มเข้าไปมีผล</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/07-Disks_added.png"><img class="alignnone size-full wp-image-1296" title="07-Disks_added" src="http://spalinux.com/wp-content/uploads/2011/02/07-Disks_added.png" alt="" width="835" height="730" /></a></p>
<h4> </h4>
<h4>Format Disk</h4>
<p>ไปที่เมนู Disks -&gt; Format เพื่อ Format Disk</p>
<p>Disk: เลือกดิสก์ที่จะ format<br />
File system: เลือก &#8220;UFS (GPT and Soft Updates&#8221;<br />
Volume Label: ใส่ชื่อ Volume</p>
<p>กดปุ่ม [Format disk]</p>
<p>หน้าเว็บแสดงการ Format Disk</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/08-Disks_Format.png"><img class="alignnone size-full wp-image-1295" title="08-Disks_Format" src="http://spalinux.com/wp-content/uploads/2011/02/08-Disks_Format.png" alt="" width="835" height="730" /></a></p>
<p>หลังจาก Format เครื่องแล้ว ต้อง mount ดิสก์ขึ้นมาใช้งานด้วย</p>
<h4> </h4>
<h4>Mount Disk</h4>
<p>ไปที่เมนู Disks -&gt; Mount Point กดเคื่องหมาย + เพื่อเริ่มการ mount ดิสก์</p>
<p>เลือก Disk และใส่ค่า Mount point name แล้วกด Add</p>
<p>หน้าเว็บ Disks Mount Point &#8211; Add</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/09-Disks_Mount_Point_Add.png"><img class="alignnone size-full wp-image-1294" title="09-Disks_Mount_Point_Add" src="http://spalinux.com/wp-content/uploads/2011/02/09-Disks_Mount_Point_Add.png" alt="" width="835" height="730" /></a></p>
<p>กดปุ่ม [Apply changes] เพื่อให้คอนฟิกที่เพิ่มมีผล หน้าเว็บแสดงการ mount point</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/10-Disks_Mount_Point_Management.png"><img class="alignnone size-full wp-image-1293" title="10-Disks_Mount_Point_Management" src="http://spalinux.com/wp-content/uploads/2011/02/10-Disks_Mount_Point_Management.png" alt="" width="835" height="730" /></a></p>
<h4> </h4>
<h4>CIFS/SMB Settings</h4>
<p>หากต้องการแชร์ไฟล์แบบ Samba เพื่อให้เครื่อง Windows อื่นๆ มองเห็น ก็สามารถทำได้ง่ายๆ โดยไปที่เมนู Services -&gt; CIFS/SMB</p>
<p>ในหน้า Settings คลิ้กเลือก [x] Enable แล้วใส่ค่าคอนฟิกต่างๆ เสร็จเรียบร้อยด้านล่างกดปุ่ม [Save and Restart]</p>
<p>หน้าเว็บแสดงการเปิด Services CIFS/SMB</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/11-Services_CIFS_SMB_Settings.png"><img class="alignnone size-full wp-image-1292" title="11-Services_CIFS_SMB_Settings" src="http://spalinux.com/wp-content/uploads/2011/02/11-Services_CIFS_SMB_Settings.png" alt="" width="835" height="730" /></a><br />
ในหน้าเว็บเดียวกันนี้ คลิ้กแท็ป [Shares] เพื่อคอนฟิกชื่อและดิสก์ที่ใช้แชร์ไฟล์</p>
<p>กดเครื่องหมาย + เพื่อเพิ่มการ Share</p>
<p>ใส่ Name, Comment เลือก Path จาก Mount Point แล้วกดปุ่ม [Add]</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/12-Services_CIFS_SMB_Shares_Add.png"><img class="alignnone size-full wp-image-1291" title="12-Services_CIFS_SMB_Shares_Add" src="http://spalinux.com/wp-content/uploads/2011/02/12-Services_CIFS_SMB_Shares_Add.png" alt="" width="835" height="730" /></a></p>
<p>หลังจากแก้ไข กดปุ่ม [Apply changes] เพื่อให้คอนฟิกใหม่มีผล</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/13-Services_CIFS_SMB_Shares.png"><img class="alignnone size-full wp-image-1290" title="13-Services_CIFS_SMB_Shares" src="http://spalinux.com/wp-content/uploads/2011/02/13-Services_CIFS_SMB_Shares.png" alt="" width="835" height="730" /></a></p>
<p>ทดลองเรียก Share Drive จากเครื่อง Windows</p>
<p><a href="http://spalinux.com/wp-content/uploads/2011/02/14-Windows_Network_Drive.png"><img class="alignnone size-full wp-image-1289" title="14-Windows_Network_Drive" src="http://spalinux.com/wp-content/uploads/2011/02/14-Windows_Network_Drive.png" alt="" width="482" height="345" /></a></p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://freenas.org/" target="_blank">FreeNAS</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2011/02/create_storage_server_using_freenas/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ทดสอบ Red Hat Enterprise Linux 6.0</title>
		<link>http://spalinux.com/2010/12/review_red_hat_enterprise_linux_6-0</link>
		<comments>http://spalinux.com/2010/12/review_red_hat_enterprise_linux_6-0#comments</comments>
		<pubDate>Sun, 05 Dec 2010 16:30:02 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Linux Installation]]></category>
		<category><![CDATA[RedHat 6]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1171</guid>
		<description><![CDATA[เมื่อไม่นานมานี้ทาง RedHat ได้ออก RedHat Enterprise Linux เวอร์ชั่น 6.0 ซึ่งได้พัฒนาไปจากเวอร์ชั่น 5 ค่อนข้างมาก ซึ่งสามารถดูรายละเอียดได้ที่ http://www.redhat.com/rhel/server/details/ บทความนี้แสดงให้เห็นการติดตั้ง Red Hat 6.0 โดยใช้แผ่นดีวีดี เผื่อหวังว่าผู้สนใจได้ข้อมูลในเบื้องต้น ประกอบการตัดสินใจในการ upgrade ต่อไป หมายเหตุ หากได้ติดตามบทความในเว็บไซต์ spalinux.com มาพอสมควร ผู้เขียนมักจะทดสอบการติดตั้ง การคอนฟิกลินุกซ์ในด้านต่างๆ โดยใช้ Fedora เป็นหลัก ซึ่งถ้าคุ้นเคยกับ Fedora แล้ว การใช้งาน RedHat 6.0 ถือว่าไม่แปลกใหม่แต่อย่างใด เพราะทาง RedHat เอง ได้ใช้ Fedora เพื่อเป็น Linux Distribution ในการทดสอบคุณสมบัติต่างๆ ก่อนที่จะนำมาใช้กับ RedHat Enterprise Linux คำเตือน การติดตั้ง Linux ใหม่บนเครื่อง [...]]]></description>
			<content:encoded><![CDATA[<p>เมื่อไม่นานมานี้ทาง RedHat ได้ออก RedHat Enterprise Linux เวอร์ชั่น 6.0 ซึ่งได้พัฒนาไปจากเวอร์ชั่น 5 ค่อนข้างมาก ซึ่งสามารถดูรายละเอียดได้ที่ <a href="http://www.redhat.com/rhel/server/details/">http://www.redhat.com/rhel/server/details/</a></p>
<p>บทความนี้แสดงให้เห็นการติดตั้ง Red Hat 6.0 โดยใช้แผ่นดีวีดี เผื่อหวังว่าผู้สนใจได้ข้อมูลในเบื้องต้น ประกอบการตัดสินใจในการ upgrade ต่อไป</p>
<p><span id="more-1171"></span>หมายเหตุ หากได้ติดตามบทความในเว็บไซต์ spalinux.com มาพอสมควร ผู้เขียนมักจะทดสอบการติดตั้ง การคอนฟิกลินุกซ์ในด้านต่างๆ โดยใช้ Fedora เป็นหลัก ซึ่งถ้าคุ้นเคยกับ Fedora แล้ว การใช้งาน RedHat 6.0 ถือว่าไม่แปลกใหม่แต่อย่างใด เพราะทาง RedHat เอง ได้ใช้ Fedora เพื่อเป็น Linux Distribution ในการทดสอบคุณสมบัติต่างๆ ก่อนที่จะนำมาใช้กับ RedHat Enterprise Linux</p>
<p><strong><span style="color: #ff0000;">คำเตือน การติดตั้ง Linux ใหม่บนเครื่อง อาจทำให้ข้อมูลในดิสก์ที่มีอยู่ สูญหายทั้งหมด</span></strong></p>
<p>หน้าจอ boot สำหรับการติดตั้ง ในเวอร์ชั่น 6.0 นี้ ทาง RedHat แนะนำให้ใช้การติดตั้งแบบ Graphical Mode เท่านั้น ถึงจะสามารถเลือกวิธีการติดตั้งขั้นตอนต่างๆ ได้ครบถ้วน หากใช้แบบ Text Mode จะทำได้บางส่วนเท่านั้น</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/01-Welcome_to_RedHat_Enterp.png"><img class="alignnone size-full wp-image-1172" title="Welcome to RedHat Enterprise Linux 6.0" src="http://spalinux.com/wp-content/uploads/2010/12/01-Welcome_to_RedHat_Enterp.png" alt="" width="640" height="480" /></a></p>
<p>ข้อแตกต่างจาก Fedora คือการติดตั้งแบบ Graphical Mode ต้องใช้ Memory มากกว่า 512 MB</p>
<p>หน้าจอ error &#8220;You do not have enough RAM to use the graphical installer. Starting text mode&#8221;  เมื่อทดลองติดตั้งบนเครื่องที่มี Memory 512 MB</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/02-Not_enough_Ram_to_use_th.png"><img class="alignnone size-full wp-image-1173" title="Not enough Ram to use the graphical installer" src="http://spalinux.com/wp-content/uploads/2010/12/02-Not_enough_Ram_to_use_th.png" alt="" width="720" height="400" /></a></p>
<p>หลังจากที่เพิ่ม Memory ของเครื่องเป็น 1 GB ก็สามารถบู๊ตเพื่อดิดตั้งแบบ Graphical Installer ได้</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/03-RedHat_Enterprise_6.png"><img class="alignnone size-full wp-image-1174" title="03-RedHat_Enterprise_6" src="http://spalinux.com/wp-content/uploads/2010/12/03-RedHat_Enterprise_6.png" alt="" width="800" height="600" /></a></p>
<p>สามารถเลือกติดตั้งบนดิสก์ได้หลายแบบ ทั้ง disk ธรรมดา IDE, SATA หรือ SAN, iSCSI</p>
<p>ถ้าหากใช้ดิสก์ Internal Disk ในเครื่อง PC หรือ Server ทั่วไป ไม่ว่าเป็น IDE, SATA  ต้องเลือก &#8220;Basic Storage Devices&#8221;</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/04-Type_of_Devices_for_Inst.png"><img class="alignnone size-full wp-image-1175" title="04-Type_of_Devices_for_Inst" src="http://spalinux.com/wp-content/uploads/2010/12/04-Type_of_Devices_for_Inst.png" alt="" width="800" height="600" /></a></p>
<p>ใส่ชื่อ Hostname ของเครื่อง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/05-Hostname_and_Configure_N.png"><img class="alignnone size-full wp-image-1176" title="05-Hostname_and_Configure_N" src="http://spalinux.com/wp-content/uploads/2010/12/05-Hostname_and_Configure_N.png" alt="" width="800" height="600" /></a></p>
<p>สังเกตว่าในหน้านี้จะมีปุ่ม [Configure Nework] เพื่อกดเข้าสู่การคอนฟิก Network ของเครื่องได้</p>
<p>ตัวอย่างการกดปุ่ม [Configure Network] แล้วใส่ค่าคอนฟิก Network เช่น IP Address, Netmask, Gateway, DNS servers</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/06-Editing_System_eth0.png"><img class="alignnone size-full wp-image-1177" title="06-Editing_System_eth0" src="http://spalinux.com/wp-content/uploads/2010/12/06-Editing_System_eth0.png" alt="" width="800" height="600" /></a></p>
<p>หน้าจอเลือก Time Zone ของเครื่อง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/07-Select_Time_Zone.png"><img class="alignnone size-full wp-image-1178" title="07-Select_Time_Zone" src="http://spalinux.com/wp-content/uploads/2010/12/07-Select_Time_Zone.png" alt="" width="800" height="600" /></a></p>
<p>เลือกคอนฟิก disk partition ที่จะติดตั้ง ในที่นี้จะทดลองเลือกแบบ &#8220;User All Space&#8221; เพื่อลบ partition ที่มีอยู่เดิมทั้งหมดแล้วช่วยคอนฟิก partition ให้โดยอัตโนมัติ</p>
<p><span style="color: #ff0000;"><strong>คำเตือน ทำความเข้าใจก่อนเลือก เพราะข้อมูลเดิมที่มีอยู่ในดิสก์จะสูญหายทั้งหมด</strong></span></p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/08-Type_of_Installation.png"><img class="alignnone size-full wp-image-1179" title="08-Type_of_Installation" src="http://spalinux.com/wp-content/uploads/2010/12/08-Type_of_Installation.png" alt="" width="800" height="600" /></a></p>
<p>หากเลือก [x] Review and modify partitioning layout  หน้าจอจะขึ้นให้สามารถปรับเปลี่ยน partition ได้</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/09-Use_All_Space_Partitioni.png"><img class="alignnone size-full wp-image-1180" title="09-Use_All_Space_Partitioni" src="http://spalinux.com/wp-content/uploads/2010/12/09-Use_All_Space_Partitioni.png" alt="" width="800" height="600" /></a></p>
<p>ใน RedHat Enterprise 6.0 นี้ จะเพิ่มการสนับสนุน filesystem แบบ ext4 และ xfs</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/10-File_System_Type.png"><img class="alignnone size-full wp-image-1181" title="10-File_System_Type" src="http://spalinux.com/wp-content/uploads/2010/12/10-File_System_Type.png" alt="" width="800" height="600" /></a></p>
<p>แต่เท่าที่ลองมีข้อจำกัดอยู่เช่น</p>
<ul>
<li>/boot ไม่สามารถเลือกเป็น xfs ได้ (Fedora ก็ไม่สามารถเลือกได้)</li>
<li>/  (root) ไม่สามารถเลือกเป็น xfs ได้ (Fedora สามารถเลือกได้)</li>
</ul>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/11-root_Partition_on_XFS_no.png"><img class="alignnone size-full wp-image-1182" title="11-root_Partition_on_XFS_no" src="http://spalinux.com/wp-content/uploads/2010/12/11-root_Partition_on_XFS_no.png" alt="" width="800" height="600" /></a></p>
<p>การคอนฟิก Boot Loader</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/12_Boot_Loader.png"><img class="alignnone size-full wp-image-1183" title="12_Boot_Loader" src="http://spalinux.com/wp-content/uploads/2010/12/12_Boot_Loader.png" alt="" width="800" height="600" /></a></p>
<p>อย่างหนึ่งที่ค่อนข้างดี คือมี &#8220;set of software&#8221; ให้เลือกแบบต่างๆ ให้เหมาะกับการที่เราจะนำเครื่อง server นี้ไปใช้ได้ โดยเมื่อเลือกก็จะติดตั้งเฉพาะ software ที่จำเป็นสำหรับ server เช่นเมื่อเลือก Database Server ก็จะติดตั้ง MySQL, PostgreSQL ให้</p>
<p>ในที่นี้จะลองติดตั้งแบบ &#8220;Basic Server&#8221;</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/13_Select_Set_of_Software.png"><img class="alignnone size-full wp-image-1184" title="13_Select_Set_of_Software" src="http://spalinux.com/wp-content/uploads/2010/12/13_Select_Set_of_Software.png" alt="" width="800" height="600" /></a></p>
<p>หากเลือก [x] Customize now หน้าจอจะขึ้นชื่อ software ให้เลือกเพื่อจะติดตั้งโดยละเอียด โดยจะอิงกับ &#8220;set of software&#8221; ที่เลือกมา</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/14-Customize_Selection.png"><img class="alignnone size-full wp-image-1185" title="14-Customize_Selection" src="http://spalinux.com/wp-content/uploads/2010/12/14-Customize_Selection.png" alt="" width="800" height="600" /></a></p>
<p>หน้าจอแสดงการติดตั้ง &#8220;Basic Server&#8221; ติดตั้งประมาณ 533 packages</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/15-Installing.png"><img class="alignnone size-full wp-image-1186" title="15-Installing" src="http://spalinux.com/wp-content/uploads/2010/12/15-Installing.png" alt="" width="800" height="600" /></a></p>
<p>หลังจากติดตั้งเสร็จ บู๊ตเครี่องขึ้นมา หน้าจอบู๊ตเมนูแสดง</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/16_GRUB_Boot_Menu.png"><img class="alignnone size-full wp-image-1187" title="16_GRUB_Boot_Menu" src="http://spalinux.com/wp-content/uploads/2010/12/16_GRUB_Boot_Menu.png" alt="" width="640" height="480" /></a></p>
<p>หน้าจอแสดงการบู๊ต คล้ายกับ Fedora เลย เพียงแต่เปลี่ยนเป็นสีแดง เพื่อให้เข้ากับ RedHat เท่านั้น</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/17-Booting_RedHat_Enterpris.png"><img class="alignnone size-full wp-image-1188" title="17-Booting_RedHat_Enterpris" src="http://spalinux.com/wp-content/uploads/2010/12/17-Booting_RedHat_Enterpris.png" alt="" width="720" height="400" /></a></p>
<p>หน้าจอ Login พร้อมการใช้คำสั่ง rpm เพื่อตรวจสอบจำนวน packages ที่ติดตั้ง และคำสั่ง df เพื่อตรวจสอบขนาดดิสก์ที่ใช้ไปในการติดตั้ง ประมาณ 1.3 GB</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/18_Login_Prompt.png"><img class="alignnone size-full wp-image-1189" title="18_Login_Prompt" src="http://spalinux.com/wp-content/uploads/2010/12/18_Login_Prompt.png" alt="" width="720" height="400" /></a></p>
<p>หน้าจอแสดงเครื่องกำลัง shutdown</p>
<p><a href="http://spalinux.com/wp-content/uploads/2010/12/19_Shutting_Down.png"><img class="alignnone size-full wp-image-1190" title="19_Shutting_Down" src="http://spalinux.com/wp-content/uploads/2010/12/19_Shutting_Down.png" alt="" width="720" height="400" /></a></p>
<h3>ข้อมูลอ้างอิง</h3>
<ul>
<li><a href="http://www.redhat.com/rhel/server/details/" target="_blank">Red Hat Enterprise Linux 6 Technical Details: What&#8217;s New</a></li>
<li><a href="http://spalinux.com/2011/08/review-installation-centos-6-0">ทดสอบติดตั้ง CentOS 6.0</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2010/12/review_red_hat_enterprise_linux_6-0/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>เพิ่มดิสก์ใหม่บน Solaris 10</title>
		<link>http://spalinux.com/2010/03/add_new_disk_on_solaris_10</link>
		<comments>http://spalinux.com/2010/03/add_new_disk_on_solaris_10#comments</comments>
		<pubDate>Sun, 07 Mar 2010 16:02:40 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Disk]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[solaris 10]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1100</guid>
		<description><![CDATA[เช่นเดียวกับระบบปฏิบัติการ OS อื่นๆ เมื่อมีการเพิ่มดิสก์ก้อนใหม่เข้าไปในเครื่องที่ติดตั้ง Solaris 10 ต้องมีกระบวนการ หรือต้องรันคำสั่งก่อนที่จะเริ่มใช้ดิสก์ก้อนใหม่ได้ ในบทความนี้ทดสอบการเพิ่มดิสก์ก้อนใหม่ 1 ก้อน บน Solaris 10 (x86) ใช้คำสั่ง format เพื่อดูว่า Solaris มองเห็นดิสก์อะไรบ้าง # format Searching for disks...done AVAILABLE DISK SELECTIONS:        0. c1t0d0 &#60;DEFAULT cyl 4866 alt 2 hd 255 sec 63&#62;           /pci@0,0/pci1000,30@10/sd@0,0        1. c1t1d0 &#60;DEFAULT cyl 4867 alt 2 hd 255 sec 63&#62;           [...]]]></description>
			<content:encoded><![CDATA[<p>เช่นเดียวกับระบบปฏิบัติการ OS อื่นๆ เมื่อมีการเพิ่มดิสก์ก้อนใหม่เข้าไปในเครื่องที่ติดตั้ง Solaris 10 ต้องมีกระบวนการ หรือต้องรันคำสั่งก่อนที่จะเริ่มใช้ดิสก์ก้อนใหม่ได้</p>
<p><span id="more-1100"></span></p>
<p>ในบทความนี้ทดสอบการเพิ่มดิสก์ก้อนใหม่ 1 ก้อน บน Solaris 10 (x86)</p>
<p>ใช้คำสั่ง format เพื่อดูว่า Solaris มองเห็นดิสก์อะไรบ้าง</p>
<pre># <strong>format</strong>
Searching for disks...done</pre>
<pre>AVAILABLE DISK SELECTIONS:
       0. c1t0d0 &lt;DEFAULT cyl 4866 alt 2 hd 255 sec 63&gt;
          <a>/pci@0,0/pci1000,30@10/sd@0,0</a>
       <span style="color: #0000ff;"><strong>1. c1t1d0</strong></span> &lt;DEFAULT cyl 4867 alt 2 hd 255 sec 63&gt;
          <a>/pci@0,0/pci1000,30@10/sd@1,0</a>
Specify disk (enter its number):</pre>
<p>ดิสก์ก้อนใหม่ที่เพิ่มเข้ามาคือดิสก์หมายเลข 1 &#8220;c1t1d0&#8243;</p>
<p>พิมพ์หมายเลขของดิสก์แล้วกด [Enter] เพื่อเข้าสู่โหมดจัดการของดิสก์ก้อนที่ระบุ</p>
<pre>Specify disk (enter its number): <strong>1</strong>
selecting c1t1d0
[disk formatted]</pre>
<pre>FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !&lt;cmd&gt;     - execute &lt;cmd&gt;, then return
        quit</pre>
<p>พิมพ์คำสั่ง partition เพื่อเข้าสู่โหมดการแบ่ง partition</p>
<pre>format&gt; <strong>partition</strong>
<span style="color: #ff0000;">WARNING - This disk may be in use by an application that has
          modified the fdisk table. Ensure that this disk is
          not currently in use before proceeding to use fdisk.</span></pre>
<p>หากเจอข้อความ WARNING แบบด้านบน ให้พิมพ์คำสั่ง fdisk เพื่อแก้ไข</p>
<pre>format&gt; <strong>fdisk</strong>
No fdisk table exists. The default partition for the disk is:</pre>
<pre>  a 100% "SOLARIS System" partition</pre>
<pre>Type "y" to accept the default partition,  otherwise type "n" to edit the
 partition table.
<strong>y</strong>
format&gt;</pre>
<p>พิมพ์คำสั่ง partition อีกครั้ง</p>
<pre>format&gt; <strong>partition</strong></pre>
<pre>PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !&lt;cmd&gt; - execute &lt;cmd&gt;, then return
        quit
partition&gt;</pre>
<p>พิมพ์คำสั่ง print เพื่อแสดงการแบ่ง partition</p>
<pre>partition&gt; <strong>print</strong>
Current partition table (original):
Total disk cylinders available: 4866 + 2 (reserved cylinders)</pre>
<pre>Part      Tag    Flag     Cylinders        Size            Blocks
<span style="color: #0000ff;">  0 unassigned    wm       0               0         (0/0/0)           0
</span>  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 4865       37.28GB    (4866/0/0) 78172290
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        7.84MB    (1/0/0)       16065
  9 unassigned    wm       0               0         (0/0/0)           0</pre>
<pre>partition&gt;</pre>
<p>เริ่มต้น ทดลองสร้าง partition 0 มีขนาด 10 GB</p>
<pre>partition&gt; <strong>0</strong>
Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0               0         (0/0/0)           0</pre>
<pre>Enter partition id tag[unassigned]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]:
Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: <strong>10gb</strong></pre>
<p>ใช้คำสั่ง print เพื่อแสดง partition</p>
<pre>partition&gt; <strong>print</strong>
Current partition table (unnamed):
Total disk cylinders available: 4866 + 2 (reserved cylinders)</pre>
<pre>Part      Tag    Flag     Cylinders        Size            Blocks
<span style="color: #0000ff;">  0 unassigned    wm       0 - 1305       10.00GB    (1306/0/0) 20980890
</span>  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 4865       37.28GB    (4866/0/0) 78172290
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        7.84MB    (1/0/0)       16065
  9 unassigned    wm       0               0         (0/0/0)           0</pre>
<p>หลังจากแก้ไข partition พิมพ์คำสั่ง label เพื่อบันทึกข้อมูลลงดิสก์</p>
<pre>partition&gt; <strong>label</strong>
Ready to label disk, continue? <strong>y</strong></pre>
<pre>partition&gt; <strong>^D</strong></pre>
<p>กดปุ่ม [Ctrl]+[D] เพื่อออกจากคำสั่ง format</p>
<p>ใช้คำสั่ง newfs เพื่อสร้าง filesystem บน partition ที่เพิ่งสร้างขึ้น</p>
<p>หมายเหตุ ชื่อไฟล์ device ของดิสก์ c1t1d0 &#8211; partition 0 คือ /dev/rdsk/c1t1d0s0</p>
<pre># <strong>newfs /dev/rdsk/c1t1d0s0
</strong>newfs: construct a new file system /dev/rdsk/c1t1d0s0: (y/n)? y
Warning: 870 sector(s) in last cylinder unallocated
/dev/rdsk/c1t1d0s0:     20980890 sectors in 3415 cylinders of 48 tracks, 128 sectors
        10244.6MB in 214 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920,
 20055584, 20154016, 20252448, 20350880, 20449312, 20547744, 20646176,
 20744608, 20843040, 20941472</pre>
<p>แนะนำให้ใช้คำสั่ง fsck เพื่อตรวจสอบความถูกต้องของ filesystem ที่สร้างขึ้น ต้องไม่มีข้อความ error ใดๆ</p>
<pre># <strong>fsck -y /dev/rdsk/c1t1d0s0
</strong>** /dev/rdsk/c1t1d0s0
** Last Mounted on
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3a - Check Connectivity
** Phase 3b - Verify Shadows/ACLs
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cylinder Groups
2 files, 9 used, 10331200 free (16 frags, 1291398 blocks, 0.0% fragmentation)</pre>
<p>สร้าง mount point สำหรับ partition ใหม่</p>
<pre># <strong>mkdir /mnt/new-disk0
</strong># <strong>mount /dev/rdsk/c1t1d0s0 /mnt/new-disk0
</strong><span style="color: #ff0000;">mount: /dev/rdsk/c1t1d0s0 not a block device</span></pre>
<p>สำหรับ Solaris เวลาใช้คำสั่ง newfs หรือ fsck ชื่อ device ที่ระบุคือ /dev/rdsk/&#8230; แต่เวลาใช้คำสั่ง mount ต้องระบุชื่อ device เป็น /dev/dsk/&#8230;</p>
<pre># <strong>mount /dev/dsk/c1t1d0s0 /mnt/new-disk0</strong></pre>
<p>ใช้คำสั่ง df เพื่อตรวจสอบ mount point</p>
<pre># <strong>df -h
</strong>Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c1t0d0s0       34G   3.7G    30G    11%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   1.6G   932K   1.6G     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
/usr/lib/libc/libc_hwcap1.so.1
                        34G   3.7G    30G    11%    /lib/libc.so.1
fd                       0K     0K     0K     0%    /dev/fd
swap                   1.6G     8K   1.6G     1%    /tmp
swap                   1.6G    20K   1.6G     1%    /var/run
/dev/dsk/c1t0d0s7      1.9G   210M   1.6G    12%    /export/home
<span style="color: #0000ff;">/dev/dsk/c1t1d0s0      9.9G    10M   9.7G     1%    /mnt/new-disk0</span></pre>
<p>หากใช้งาน partition ใหม่ได้ถูกต้องเรียบร้อยแล้ว ต้องเพิ่มคอนฟิกเข้าไปในไฟล์ /etc/vfstab เพื่อให้เวลาบู๊ตเครื่องใหม่ มีการ mount partition ใหม่นี้โดยอัตโมมัติ</p>
<pre># <strong>cat /etc/vfstab
</strong>#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
#
fd      -       /dev/fd fd      -       no      -
/proc   -       /proc   proc    -       no      -
/dev/dsk/c1t0d0s1       -       -       swap    -       no      -
/dev/dsk/c1t0d0s0       /dev/rdsk/c1t0d0s0      /       ufs     1       no      -
/dev/dsk/c1t0d0s7       /dev/rdsk/c1t0d0s7      /export/home    ufs     2       yes     -
/devices        -       /devices        devfs   -       no      -
sharefs -       /etc/dfs/sharetab       sharefs -       no      -
ctfs    -       /system/contract        ctfs    -       no      -
objfs   -       /system/object  objfs   -       no      -
swap    -       /tmp    tmpfs   -       yes     -
# new disk
<span style="color: #0000ff;">/dev/dsk/c1t1d0s0       /dev/rdsk/c1t1d0s0      /mnt/new-disk0  ufs     2       yes     -</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2010/03/add_new_disk_on_solaris_10/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>การใช้งาน DRBD เบื้องต้น</title>
		<link>http://spalinux.com/2010/02/basic_using_drbd</link>
		<comments>http://spalinux.com/2010/02/basic_using_drbd#comments</comments>
		<pubDate>Sat, 06 Feb 2010 11:09:40 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Backup]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Disk]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[drbd]]></category>
		<category><![CDATA[linux ha]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1072</guid>
		<description><![CDATA[จากบทความ ติดตั้งและคอนฟิก 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 [...]]]></description>
			<content:encoded><![CDATA[<p>จากบทความ <a href="http://spalinux.com/2010/02/install_and_configure_drbd">ติดตั้งและคอนฟิก DRBD </a> เราได้คอนฟิกเป็นแบบ Single-primary mode คือ ณ เวลาใดเวลาหนึ่ง มีเครื่องเดียวเท่านั้นที่สามารถ อ่าน เขียน ข้อมูลได้</p>
<p>ดังนั้นขณะที่เครื่องที่ 1 (centos54-a) ทำหน้าที่เป็น primary ของดิสก์ drbd0 อยู่  เครื่องที่ 2 (centos54-b) จะไม่สามารถ mount ดิสก์ drbd0 นี้ขึ้นมาใช้งานได้</p>
<p>ในบทความนี้จะแสดงการทดสอบใช้คำสั่งเพื่อเปลี่ยนโหมด Primary, Secondary ระหว่างเครื่องทั้งสอง</p>
<p>ตรวจสอบสถานะบนเครื่อง centos54-a</p>
<pre>[root@centos54-a ~]# <strong>service drbd status
</strong>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</pre>
<pre>[root@centos54-a ~]# df -h /export
Filesystem            Size  Used Avail Use% Mounted on
/dev/drbd0            950M   18M  885M   2% /export</pre>
<p>ทดสอบ mount ดิสก์บนเครื่อง centos54-b</p>
<pre>[root@centos54-b ~]# <strong>service drbd status
</strong>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</pre>
<pre>[root@centos54-b ~]# mount /dev/drbd0 /export
mount: block device /dev/drbd0 is write-protected, mounting read-only
mount: Wrong medium type</pre>
<p>ในกรณีที่ต้องการเปลี่ยนให้เครื่องที่ 2 (centos54-b) ทำหน้าที่เป็น primary  เช่นในกรณีที่ต้องการซ่อมบำรุงเครื่องที่ 1 สามารถทำได้ดังนี้</p>
<p>บนเครื่องที่ 1 ปิดเซอร์วิส DRBD</p>
<pre>[root@centos54-a ~]# <strong>service drbd stop
</strong>Stopping all DRBD resources:
.
[root@centos54-a ~]# <strong>service drbd status
</strong>drbd not loaded</pre>
<p>ตรวจสอบสถานะบนเครื่องที่ 2 หลังจากปิดเซอร์วิสบนเครื่องที่ 1</p>
<pre>[root@centos54-b ~]# <strong>service drbd status
</strong>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  <strong><span style="color: #0000ff;">Secondary</span></strong>/Unknown  UpToDate/DUnknown  C</pre>
<p>แม้เครื่อง Primary ปิดไปแล้ว บนเครื่องที่ 2 ที่ยังอยู่ในโหมด Secondary ก็ยัง mount ดิสก์ ไม่ได้</p>
<pre>[root@centos54-b ~]# <strong>mount /dev/drbd0 /export
</strong>mount: block device /dev/drbd0 is write-protected, mounting read-only
mount: Wrong medium type</pre>
<p>ต้องเปลี่ยนสถานะบนเครื่องที่ 2 ให้เป็น primary ด้วยคำสั่ง drbdadm primary</p>
<pre>[root@centos54-b ~]# <strong>drbdadm primary all</strong></pre>
<p>ตรวจสอบสถานะบนเครื่องที่ 2</p>
<pre>[root@centos54-b ~]# <strong>service drbd status
</strong>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  <span style="color: #0000ff;"><strong>Primary</strong></span>/Unknown  UpToDate/DUnknown  C</pre>
<p>เมื่ออยู่ในโหมด primary แล้ว ก็สามารถ mount ดิสก์ขึ้นมาใช้งานได้</p>
<pre>[root@centos54-b ~]# <strong>mount /dev/drbd0 /export
</strong>[root@centos54-b ~]# <strong>df -h /export
</strong>Filesystem            Size  Used Avail Use% Mounted on
/dev/drbd0            950M   18M  885M   2% /export</pre>
<p>ทดลองสร้างไฟล์ในดิสก์ drbd0</p>
<pre>[root@centos54-b ~]# <strong>cd /export/
</strong>[root@centos54-b export]# <strong>ls
</strong>lost+found
[root@centos54-b export]# <strong>echo "hello world from node 2" &gt; test-file-on-node-2.txt
</strong>[root@centos54-b export]# <strong>ls -l
</strong>total 20
drwx------ 2 root root 16384 Feb  6 15:46 lost+found
-rw-r--r-- 1 root root    24 Feb  6 17:17 <span style="color: #0000ff;"><strong>test-file-on-node-2.txt</strong></span></pre>
<p>รันเซอร์วิส DRBD บนเครื่องที่ 1 ขึ้นมาอีกครั้ง ตอนนี้เครื่องที่ 1 จะทำหน้าที่เป็น Secondary และจะทำการ replicate ข้อมูลมาจากเครื่องที่ 2 (Primary) โดยอัตโนมัติ</p>
<pre>[root@centos54-a ~]# <strong>service drbd start
</strong>Starting DRBD resources: [ d(r0) s(r0) n(r0) ].</pre>
<pre>[root@centos54-a ~]# <strong>service drbd status
</strong>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  <strong><span style="color: #0000ff;">Secondary</span></strong>/Primary  UpToDate/UpToDate  C</pre>
<p>บนเครื่องที่ 2 เปลี่ยนให้เป็นโหมด Secondary</p>
<pre>[root@centos54-b ~]# <strong>drbdadm secondary all
</strong><span style="color: #ff0000;">0: State change failed: (-12) Device is held open by someone</span>
Command 'drbdsetup 0 secondary' terminated with exit code 11</pre>
<p>หากมีการเรียกใช้ดิสก์ drbd อยู่ จะไม่สามารถเปลี่ยนโหมดจาก Primary ไปเป็น Secondary ได้ ต้อง umount ดิสก์ออกไปก่อนถึงจะเปลี่ยนโหมดได้</p>
<pre>[root@centos54-b ~]# <strong>umount /export
</strong>[root@centos54-b ~]# <strong>drbdadm secondary all</strong></pre>
<p>ตรวจสอบสถานะบนเครื่องที่ 2</p>
<pre>[root@centos54-b ~]# <strong>service drbd status
</strong>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  <span style="color: #0000ff;"><strong>Secondary</strong></span>/Secondary  UpToDate/UpToDate  C</pre>
<p>เปลี่ยนโหมดบนเครื่องที่ 1 ให้เป็น Primary เพื่อเรียกใช้ดิสก์ได้</p>
<pre>[root@centos54-a ~]# <strong>drbdadm primary all
</strong>[root@centos54-a ~]# <strong>service drbd status
</strong>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  <strong><span style="color: #0000ff;">Primary</span></strong>/Secondary  UpToDate/UpToDate  C</pre>
<p>mount ดิสก์ และตรวจสอบไฟล์ที่อยู่ใน drbd0 จะเห็นไฟล์ที่สร้างจากเครื่องที่ 2</p>
<pre>[root@centos54-a ~]# <strong>mount /dev/drbd0 /export
</strong>[root@centos54-a ~]# <strong>cd /export/
</strong>[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 <strong><span style="color: #0000ff;">test-file-on-node-2.txt
</span></strong>[root@centos54-a export]# <strong>cat test-file-on-node-2.txt
</strong>hello world from node 2</pre>
<h4>ตรวจสอบไฟล์ /var/log/messages</h4>
<p>เมื่อมีปัญหาเกี่ยวกับการใช้ DBRD นอกจากการใช้คำสั่ง service เพื่อตรวจสอบสถานะแล้ว ไฟล์ /var/log/messages จะแสดงการเปลี่ยนแปลงทั้งหมดของ DRBD ที่เกิดขึ้น ซึ่งสามารถนำมาใช้ช่วยในการแก้ปัญหาได้</p>
<p>ตัวอย่างข้อความในไฟล์ /var/log/messages ที่เกิดขึ้น เมื่อมีการเปลี่ยนโหมด</p>
<pre>[root@centos54-a ~]# <strong>tail /var/log/messages
</strong>...
Feb  6 17:19:38 centos54-a kernel: block drbd0: peer( Primary -&gt; Secondary )
Feb  6 17:21:04 centos54-a kernel: block drbd0: role( Secondary -&gt; Primary )
...</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2010/02/install_and_configure_drbd">ติดตั้งและคอนฟิก DRBD</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2010/02/basic_using_drbd/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ติดตั้งและคอนฟิก DRBD</title>
		<link>http://spalinux.com/2010/02/install_and_configure_drbd</link>
		<comments>http://spalinux.com/2010/02/install_and_configure_drbd#comments</comments>
		<pubDate>Sat, 06 Feb 2010 09:40:46 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Backup]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Disk]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[drbd]]></category>
		<category><![CDATA[linux ha]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1068</guid>
		<description><![CDATA[DRBD (Distributed Replicated Block Device) เป็นโปรแกรมเพื่อใช้ในการ replicate ข้อมูลดิสก์ที่อยู่คนละเครื่องกัน ผ่านทางเน็ตเวิร์ก โดยจะทำในระดับ block ของดิสก์ เมื่อมีการเปลี่ยนแปลงข้อมูลที่อยูในดิสก์เครื่องหนึ่ง (primary) การเปลี่ยนแปลงนั้นจะถูก replicate ไปยังอีกเครื่อง (secondary) โดยอัตโนมัติ DRBD ประกอบด้วยสองส่วนคือ 1. Kernel module &#8211; DRBD ทำหน้าที่ใน kernel โดยจะสร้าง virtual block device คั่นกลางระหว่าง physical disk กับ filesystem ที่สร้างอยู่ ไม่ว่าจะเป็น ext3, ext4, xfs 2. User space administration tools &#8211; เป็นโปรแกรมที่ช่วยในการจัดการ DRBD ได้ง่ายขึ้น หลักๆ จะเป็น drbdadm ในบทความนี้จะแสดงการติดตั้งโปรแกรม [...]]]></description>
			<content:encoded><![CDATA[<p>DRBD (Distributed Replicated Block Device) เป็นโปรแกรมเพื่อใช้ในการ replicate ข้อมูลดิสก์ที่อยู่คนละเครื่องกัน ผ่านทางเน็ตเวิร์ก โดยจะทำในระดับ block ของดิสก์</p>
<p>เมื่อมีการเปลี่ยนแปลงข้อมูลที่อยูในดิสก์เครื่องหนึ่ง (primary) การเปลี่ยนแปลงนั้นจะถูก replicate ไปยังอีกเครื่อง (secondary) โดยอัตโนมัติ</p>
<p>DRBD ประกอบด้วยสองส่วนคือ</p>
<p>1. Kernel module &#8211; DRBD ทำหน้าที่ใน kernel โดยจะสร้าง virtual block device คั่นกลางระหว่าง physical disk กับ filesystem ที่สร้างอยู่ ไม่ว่าจะเป็น ext3, ext4, xfs<br />
2. User space administration tools &#8211; เป็นโปรแกรมที่ช่วยในการจัดการ DRBD ได้ง่ายขึ้น หลักๆ จะเป็น drbdadm</p>
<p>ในบทความนี้จะแสดงการติดตั้งโปรแกรม DRBD และคอนฟิกเป็นแบบ Single-primary mode คือ ณ เวลาใดเวลาหนึ่ง มีเครื่องเดียวเท่านั้นที่สามารถ อ่าน เขียน ข้อมูลได้</p>
<p><span style="color: #ff0000;"><strong>คำเตือน ติดตั้งและคอนฟิก DRBD บนเครื่องทดสอบให้เข้าใจก่อน เพราะบางคำสั่งอาจกระทบข้อมูลดิสก์หรือ partition ที่มีอยู่ในเครื่องได้ ทำให้ข้อมูลเสียหายได้</strong></span></p>
<p><span id="more-1068"></span></p>
<h4>ระบบสำหรับการทดสอบ</h4>
<p>ในที่นี้จะติดตั้ง CentOS 5.4 พร้อมคอนฟิกให้สองเครื่องติดต่อ ping กันได้ และปิดคุณสมบัติ firewall ทั้งหมด</p>
<p><strong>เครื่องที่ 1</strong></p>
<ul>
<li>Hostname:   centos54-a.spalinux.com</li>
<li>IP Address: 10.3.3.51</li>
</ul>
<p><strong>เครื่องที่ 2</strong></p>
<ul>
<li>Hostname:   centos54-b.spalinux.com</li>
<li>IP Address: 10.3.3.52</li>
</ul>
<p>แก้ไขไฟล์ /etc/hosts เพื่อให้ทั้งสองเครื่องอ้างอิงจากชื่อเครื่องได้</p>
<p>ตัวอย่างคอนฟิกของเครื่องที่ 1</p>
<pre>[root@centos54-a ~]# <strong>hostname</strong>
centos54-a.spalinux.com</pre>
<pre>[root@centos54-a ~]# <strong>cat /etc/hosts
</strong># Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6</pre>
<pre>10.3.3.51       centos54-a centos54-a.spalinux.com
10.3.3.52       centos54-b centos54-b.spalinux.com</pre>
<p>ตัวอย่างคอนฟิกของเครื่องที่ 2</p>
<pre>[root@centos54-b ~]# <strong>hostname</strong>
centos54-b.spalinux.com</pre>
<pre>[root@centos54-b ~]# <strong>cat /etc/hosts
</strong># Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6</pre>
<pre>10.3.3.51       centos54-a centos54-a.spalinux.com
10.3.3.52       centos54-b centos54-b.spalinux.com</pre>
<p>ทั้งสองเครื่อง ต้องสร้าง partition สำหรับใช้เป็นดิสก์ DRBD โดยไม่ต้องสร้าง filesystem ใดๆ ทั้งสิ้นบน partition นี้ สมมติว่าเป็น /dev/sda5 บนทั้งสองเครื่อง</p>
<p>หมายเหตุ</p>
<ul>
<li>แนะนำให้สร้าง partition ทั้งสองเครื่องให้เหมือนกัน ขนาดเท่ากัน จะได้ง่ายต่อการคอนฟิก</li>
<li>สำหรับการทดสอบเริ่มต้น แนะนำให้สร้างขนาด partition เล็กๆ ก่อน จะได้ใช้เวลาในการ sync ข้อมูลไม่นานมากนัก ในบทความนี้สร้างประมาณ 1 GBytes</li>
</ul>
<h4>ติดตั้งโปรแกรม DRBD</h4>
<p>ไฟล์ติดตั้ง DRBD ในรูปแบบ rpm ของ CentOS 5.4 นั้น ไม่อยู่ในแผ่นดีวีดีติดตั้ง แต่จะอยู่ในส่วนของ extras สำหรับในเมืองไทยสามารถดาวน์โหลดได้จาก <a href="http://www.mirror.in.th/osarchive/centos/5.4/extras/">http://www.mirror.in.th/osarchive/centos/5.4/extras/</a></p>
<p>ดาวน์โหล์ด และติดตั้งไฟล์ rpm สองไฟล์ บนเครื่องทั้งสอง</p>
<ul>
<li>drbd83-8.3.2-6.el5_3.x86_64.rpm  &#8211; &#8220;User space administration tools&#8221;</li>
<li>kmod-drbd83-8.3.2-6.el5_3.x86_64.rpm  &#8211; &#8220;Kernel Module&#8221;</li>
</ul>
<p>ใช้คำสั่ง rpm เพื่อติดตั้ง</p>
<pre>[root@centos54-a ~]# <strong>rpm -ivh drbd83-8.3.2-6.el5_3.x86_64.rpm
</strong>Preparing...                ########################################### [100%]
   1:drbd83                 ########################################### [100%]
[root@centos54-a ~]# <strong>rpm -ivh kmod-drbd83-8.3.2-6.el5_3.x86_64.rpm
</strong>Preparing...                ########################################### [100%]
   1:kmod-drbd83            ########################################### [100%]</pre>
<h4>คอนฟิก DRBD บนเครื่องที่ 1 (primary)</h4>
<p>ไฟล์คอนฟิกหลักของ DRBD คือไฟล์ /etc/drbd.conf ต้องมีการแก้ไขไฟล์นี้ก่อนถึงจะเริ่มใช้งานได้ โดยมีไฟล์ตัวอย่างคอนฟิกอยู่ใน /usr/share/doc/drbd83/drbd.conf</p>
<p>ไฟล์คอนฟิก /etc/drbd.conf จากการติดตั้ง</p>
<pre>[root@centos54-a ~]# <strong>cat /etc/drbd.conf
</strong>#
# please have a a look at the example configuration file in
# /usr/share/doc/drbd83/drbd.conf
#</pre>
<p>สร้างไฟล์คอนฟิก /etc/drbd.conf บนเครื่องที่ 1 &#8220;centos54-a.spalinux.com&#8221; ดังนี้</p>
<pre>[root@centos54-a ~]# <strong>cat /etc/drbd.conf
</strong>global {
    usage-count no;
}</pre>
<pre>common {
    syncer { rate 10M; }
}</pre>
<pre>resource <strong><span style="color: #0000ff;">r0</span> </strong>{
    protocol C;</pre>
<pre>    net {
        cram-hmac-alg "sha1";
        shared-secret "<span style="color: #0000ff;"><strong>test1234</strong></span>";
    }</pre>
<pre>    on <strong><span style="color: #0000ff;">centos54-a.spalinux.com</span></strong> {
        device /dev/drbd0;
        <strong><span style="color: #0000ff;">disk /dev/sda5</span></strong>;
        <strong><span style="color: #0000ff;">address 10.3.3.51:8888</span></strong>;
        meta-disk internal;
    }</pre>
<pre>    on <strong><span style="color: #0000ff;">centos54-b.spalinux.com</span></strong> {
        device /dev/drbd0;
        <strong><span style="color: #0000ff;">disk /dev/sda5</span></strong>;
        <strong><span style="color: #0000ff;">address 10.3.3.52:8888</span></strong>;
        meta-disk internal;
    }
}</pre>
<p>คำอธิบายเบื้องต้น</p>
<ul>
<li>shared-secret เป็นการกำหนดรหัสของเครื่องที่สามารถ replicate ข้อมูลกันได้ </li>
<li>r0 เป็นชื่อ resource ของ DRBD สามารถตั้งเป็นชื่อใดๆ ก็ได้ เพื่อสื่อความหมาย</li>
<li>on ตามด้วยชื่อ hostname ที่ต้องการ replicate ข้อมูลกัน ส่วนในวงเล็บ { เป็นการกำหนดคอนฟิกของแต่ละเครื่อง</li>
<li>disk คือชื่อ partition ที่สร้างไว้สำหรับการทำ DRBD ในที่นี้คือ /dev/sda5</li>
</ul>
<p>ใช้คำสั่ง drbadm create-md เพื่อสร้าง meta data บน partition ที่จะทำเป็น DRBD</p>
<pre>[root@centos54-a ~]# <strong>drbdadm create-md all
</strong>Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.</pre>
<p>หาก partition ที่คอนฟิกเป็น DRBD มี filesystem อยู่ก่อนแล้ว จะไม่สามารถสร้าง DRBD ได้</p>
<pre>[root@centos54-a ~]# <strong>drbdadm create-md all
</strong>md_offset 1011671040
al_offset 1011638272
bm_offset 1011605504</pre>
<pre><span style="color: #ff0000;">Found ext3 filesystem</span> which uses 987964 kB
current configuration leaves usable 987896 kB</pre>
<pre>Device size would be truncated, which
would corrupt data and result in
'access beyond end of device' errors.
You need to either
   * use external meta data (recommended)
   * shrink that filesystem first
   * zero out the device (destroy the filesystem)
<span style="color: #ff0000;">Operation refused.</span></pre>
<pre>Command 'drbdmeta 0 v08 /dev/sda5 internal create-md' terminated with exit code 40
<span style="color: #ff0000;">drbdadm create-md r0: exited with code 40</span></pre>
<p>วิธีการแก้ไขคือต้องลบข้อมูลของ filesystem บน partition /dev/sda5 นี้ออก วิธีการง่ายสุดคือใช้คำสั่ง dd</p>
<p><span style="color: #ff0000;"><strong>คำเตือน คำสั่ง dd จะลบข้อมูลทั้งหมดบน partition ที่ระบุ</strong></span></p>
<pre>[root@centos54-a ~]# <strong>dd if=/dev/zero of=/dev/sda5
</strong>dd: writing to `/dev/sda5': No space left on device
1975933+0 records in
1975932+0 records out
1011677184 bytes (1.0 GB) copied, 87.2749 seconds, 11.6 MB/s</pre>
<p>แล้วถึงสามารถสร้าง meta data ของ DRBD ได้</p>
<pre>[root@centos54-a ~]# <strong>drbdadm create-md all
</strong>Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.</pre>
<p>ใช้คำสั่ง service เพื่อรันเซอร์วิส DRBD</p>
<pre>[root@centos54-a ~]# <strong>service drbd start
</strong>Starting DRBD resources: [ d(r0) s(r0) n(r0) ]..........
***************************************************************
 DRBD's startup script waits for the peer node(s) to appear.
 - In case this node was already a degraded cluster before the
   reboot the timeout is 0 seconds. [degr-wfc-timeout]
 - If the peer was available before the reboot the timeout will
   expire after 0 seconds. [wfc-timeout]
   (These values are for resource 'r0'; 0 sec -&gt; wait forever)
 To abort waiting enter 'yes' [  20]:<span style="color: #3366ff;"><strong><span style="color: #0000ff;">yes</span></strong></span></pre>
<p>ในครั้งแรกที่รันเซอร์วิส บนเครื่อง primary โปรแกรมจะรอให้เครื่อง peer (secondary) เข้ามาเชื่อมต่อ หากไม่ต้องการให้รอ ให้พิมพ์คำว่า &#8220;yes&#8221; แล้ว [Enter]</p>
<p>ใช้คำสั่ง service status เพื่อตรวจสอบสถานะของ DRBD</p>
<pre>[root@centos54-a ~]# <strong>service drbd status
</strong>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  <span style="color: #0000ff;"><strong>Secondary</strong></span>/Unknown  <span style="color: #0000ff;"><strong>Inconsistent</strong></span>/DUnknown  C</pre>
<p>หรืออ่านจากไฟล์ /proc/drbd โดยตรง</p>
<pre>[root@centos54-a ~]# <strong>cat /proc/drbd</strong>
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
 0: cs:WFConnection ro:Secondary/Unknown ds:Inconsistent/DUnknown C r----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:987896</pre>
<p>สร้างไดเรคทอรี /export สำหรับทดสอบ mount เพื่อใช้ดิสก์ drbd ที่สร้างขึ้น</p>
<pre>[root@centos54-a ~]# <strong>mount /dev/drbd0 /export
</strong>mount: block device /dev/drbd0 is write-protected, mounting read-only
mount: Wrong medium type</pre>
<p>ดิสก์นี้ยังไม่สามารถใช้ได้ ต้องใช้คำสั่ง drbdadm primary คอนฟิกให้ดิสก์ drbd บนเครื่องนี้ทำหน้าที่เป็น primary เพื่อให้สามารถ อ่าน เขียน ข้อมูลจากดิสก์ได้</p>
<pre>[root@centos54-a ~]# <strong>drbdadm primary all
</strong><span style="color: #ff0000;">0: State change failed: (-2) Refusing to be Primary without at least one UpToDate disk
</span>Command 'drbdsetup 0 primary' terminated with exit code 17</pre>
<p>หากเป็นการเรียกใช้ครั้งแรก ต้องระบุออปชั่นดังนี้</p>
<pre>[root@centos54-a ~]# <strong>drbdadm -- --overwrite-data-of-peer primary all
</strong>[root@centos54-a ~]#</pre>
<p>ตรวจสอบสถานะ drbd อีกครั้ง สังเกตว่า ฟิลด์ ro จะเปลี่ยนจาก Seconday เป็น Primary และฟิลด์ ds จะเปลี่ยนจาก Inconsistent เป็น UpToDate</p>
<pre>[root@centos54-a ~]# <strong>service drbd status
</strong>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  <span style="color: #0000ff;"><strong>Primary</strong></span>/Unknown  <strong><span style="color: #0000ff;">UpToDate</span></strong>/DUnknown  C</pre>
<p>ทดสอบการ mount ดิสก์อีกครั้ง</p>
<pre>[root@centos54-a ~]# <strong>mount /dev/drbd0 /export
</strong>mount: you must specify the filesystem type</pre>
<p>ก็ยังไม่สามารถ mount ได้ เพราะยังไม่มี filesystem บน /dev/drbd0</p>
<p>รันคำสั่ง mkfs.ext3 เพื่อสร้าง filesystem แบบ ext3</p>
<pre>[root@centos54-a ~]# <strong>mkfs.ext3 /dev/drbd0
</strong>mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
123648 inodes, 246974 blocks
12348 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=255852544
8 block groups
32768 blocks per group, 32768 fragments per group
15456 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376</pre>
<pre>Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done</pre>
<pre>This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.</pre>
<p>ทดสอบการ mount อีกครั้ง จะสามารถใช้งานได้แล้ว</p>
<pre>[root@centos54-a ~]# <strong>mount /dev/drbd0 /export</strong></pre>
<p>ตรวจสอบสถานะ DRBD</p>
<pre>[root@centos54-a ~]# <strong>service drbd status
</strong>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  <span style="color: #0000ff;"><strong>/export  ext3</strong></span></pre>
<h4>คอนฟิก DRBD บนเครื่องที่ 2 (secondary)</h4>
<p>สร้างไฟล์คอนฟิก /etc/drbd.conf บนเครื่องที่ 2 เหมือนกับไฟล์ในเครื่องที่ 1</p>
<pre>[root@centos54-b ~]# <strong>cat /etc/drbd.conf
</strong>global {
    usage-count no;
}</pre>
<pre>common {
    syncer { rate 10M; }
}</pre>
<pre>resource r0 {
    protocol C;</pre>
<pre>    net {
        cram-hmac-alg "sha1";
        shared-secret "test1234";
    }</pre>
<pre>    on centos54-a.spalinux.com {
        device /dev/drbd0;
        disk /dev/sda5;
        address 10.3.3.51:8888;
        meta-disk internal;
    }</pre>
<pre>    on centos54-b.spalinux.com {
        device /dev/drbd0;
        disk /dev/sda5;
        address 10.3.3.52:8888;
        meta-disk internal;
    }
}</pre>
<p>ใช้คำสั่ง drbadm create-md เพื่อสร้าง meta data บน partition ที่จะทำเป็น DRBD</p>
<pre>[root@centos54-b ~]# <strong>drbdadm create-md all
</strong>Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.</pre>
<p>เช่นเดียวกัน หากมี filesystem อยู่บน partition ก่อนแล้ว ต้องใช้คำสั่ง dd เพื่อลบข้อมูลออก</p>
<p>ใช้คำสั่ง service เพื่อรันเซอร์วิส DRBD</p>
<pre>[root@centos54-b ~]# <strong>service drbd start
</strong>Starting DRBD resources: [ d(r0) s(r0) n(r0) ].</pre>
<p>เมื่อเริ่มต้นรันเซอร์วิส DRBD บนเครื่องที่ 2 จะเป็นการเริ่ม replicate ข้อมูลจากเครื่องที่ 1</p>
<p>ตรวจสอบสถานะ DRBD บนเครื่องที่ 2</p>
<pre>[root@centos54-b ~]# <strong>service drbd status
</strong>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
...    <strong><span style="color: #0000ff;">sync'ed:    42.2%</span> </strong>             (576248/987896)K
0:r0   <strong><span style="color: #0000ff;">SyncTarget</span></strong>  <strong><span style="color: #0000ff;">Secondary</span></strong>/Primary  <span style="color: #0000ff;"><strong>Inconsistent</strong></span>/UpToDate  C</pre>
<p>ตรวจสอบสถานะ DRBD บนเครื่องที่ 1</p>
<pre>[root@centos54-a ~]# <strong>service drbd status
</strong>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
...    <strong><span style="color: #0000ff;">sync'ed:    43.0%</span></strong>              (567032/987896)K
0:r0   <strong><span style="color: #0000ff;">SyncSource</span></strong>  Primary/<strong><span style="color: #0000ff;">Secondary</span>  </strong>UpToDate/<strong><span style="color: #0000ff;">Inconsistent</span></strong>  C  /export  ext3</pre>
<p>เมื่อ replicate ข้อมูลเรียบร้อย (synced) ข้อมูลแล้ว สถานะจะเป็นดังนี้</p>
<p>ตรวจสอบสถานะ DRBD บนเครื่องที่ 2 เมื่อ synced ข้อมูลเรียบร้อย</p>
<pre>[root@centos54-b ~]# <strong>service drbd status
</strong>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   <strong><span style="color: #0000ff;">Connected</span>  <span style="color: #0000ff;">Secondary</span></strong>/Primary  <strong><span style="color: #0000ff;">UpToDate</span></strong>/UpToDate  C</pre>
<p>ตรวจสอบสถานะ DRBD บนเครื่องที่ 1 เมื่อ synced ข้อมูลเรียบร้อย</p>
<pre>[root@centos54-a ~]# <strong>service drbd status
</strong>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   <strong><span style="color: #0000ff;">Connected</span></strong>  Primary/<strong><span style="color: #0000ff;">Secondary</span></strong>  UpToDate/<strong><span style="color: #0000ff;">UpToDate</span></strong>  C  /export  ext3</pre>
<p>หลังจาก synced ข้อมูลระหว่างเครื่องเรียบร้อย เมื่อมีการเปลี่ยนแปลงข้อมูลในดิสก์บนเครื่องที่ 1 (primary) การเปลี่ยนแปลงนั้นจะถูก replicate ไปยังเครื่องที่ 2 (secondary) โดยอัตโนมัติ</p>
<p>ตัวอย่างการใช้คำสั่ง tcpdump  ตรวจสอบ packet ที่ส่งระหว่างเครื่องเพื่อการ replicate ข้อมูลของ DRBD</p>
<pre>[root@centos54-b ~]# <strong>tcpdump -i eth0 -l -nn | grep 8888
</strong>tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
15:51:39.815802 IP 10.3.3.52.8888 &gt; 10.3.3.51.42180: P 2834377596:2834377604(8) ack 2893184807 win 46 &lt;nop,nop,timestamp 1772852 1818781&gt;
15:51:39.816356 IP 10.3.3.51.42180 &gt; 10.3.3.52.8888: P 1:9(8) ack 8 win 3216 &lt;nop,nop,timestamp 1828655 1772852&gt;
15:51:39.816394 IP 10.3.3.52.8888 &gt; 10.3.3.51.42180: . ack 9 win 46 &lt;nop,nop,timestamp 1772852 1828655&gt;
15:51:44.888876 IP 10.3.3.1.4117 &gt; 10.3.3.51.22: P 1560:1612(52) ack 1629 win 64271
15:51:49.815252 IP 10.3.3.51.42180 &gt; 10.3.3.52.8888: P 9:17(8) ack 8 win 3216 &lt;nop,nop,timestamp 1838655 1772852&gt;
15:51:49.815330 IP 10.3.3.52.8888 &gt; 10.3.3.51.42180: . ack 17 win 46 &lt;nop,nop,timestamp 1782853 1838655&gt;
15:51:49.815666 IP 10.3.3.52.8888 &gt; 10.3.3.51.42180: P 8:16(8) ack 17 win 46 &lt;nop,nop,timestamp 1782853 1838655&gt;
15:51:49.847300 IP 10.3.3.51.42180 &gt; 10.3.3.52.8888: . ack 16 win 3216 &lt;nop,nop,timestamp 1838696 1782853&gt;
15:51:50.937877 IP 10.3.3.51.8888 &gt; 10.3.3.52.40284: . 3903780263:3903781711(1448) ack 2834246899 win 501 &lt;nop,nop,timestamp 1839875 1683335&gt;
...
<strong><span style="color: #0000ff;">[Ctrl-C]</span></strong></pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.drbd.org/" target="_blank">DRBD</a></li>
<li><a href="http://www.mirror.in.th/osarchive/centos/5.4/extras/" target="_blank">CentOS 5.4 extras</a></li>
<li><a href="http://spalinux.com/2010/02/basic_using_drbd">การใช้งาน DRBD เบื้องต้น</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2010/02/install_and_configure_drbd/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>คอนฟิก iSCSI target บน Linux</title>
		<link>http://spalinux.com/2009/11/configure_iscsi_target_on_linux</link>
		<comments>http://spalinux.com/2009/11/configure_iscsi_target_on_linux#comments</comments>
		<pubDate>Fri, 20 Nov 2009 08:49:56 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Disk]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[iSCSI]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=968</guid>
		<description><![CDATA[บทความนี้กล่าวถึงการติดตั้งโปรแกรม iSCSI target และการคอนฟิกเพื่อให้เครืองอื่นๆ ที่ทำหน้าที่ initiator สามารถมาเรียกใช้ storage ได้ ติดตั้งไฟล์ rpm ไฟล์ rpm ที่ต้องใช้ เพื่อคอนฟิกเครื่องให้ทำหน้าที่เป็น iSCSI target ได้ คือ &#8220;scsi-target-utils&#8221; ตัวอย่างการติดตั้งไฟล์ rpm สำหรับ Fedora 11 [root@fc11-server ~]# rpm -i scsi-target-utils-0.9.5-1.fc11.x86_64.rpm error: Failed dependencies:         perl(Config::General) is needed by scsi-target-utils-0.9.5-1.fc11.x86_64 หากเจอ error แบบนี้ ต้องลงไฟล์ rpm ชื่อ perl-Config-General ก่อน [root@fc11-server ~]# rpm -i perl-Config-General-2.42-2.fc11.noarch.rpm [root@fc11-server ~]# rpm [...]]]></description>
			<content:encoded><![CDATA[<p>บทความนี้กล่าวถึงการติดตั้งโปรแกรม iSCSI target และการคอนฟิกเพื่อให้เครืองอื่นๆ ที่ทำหน้าที่ initiator สามารถมาเรียกใช้ storage ได้</p>
<p><span id="more-968"></span></p>
<h4>ติดตั้งไฟล์ rpm</h4>
<p>ไฟล์ rpm ที่ต้องใช้ เพื่อคอนฟิกเครื่องให้ทำหน้าที่เป็น iSCSI target ได้ คือ &#8220;scsi-target-utils&#8221;</p>
<p>ตัวอย่างการติดตั้งไฟล์ rpm สำหรับ Fedora 11</p>
<pre>[root@fc11-server ~]# <strong>rpm -i scsi-target-utils-0.9.5-1.fc11.x86_64.rpm
</strong><span style="color: #ff0000;">error: Failed dependencies:
        perl(Config::General) is needed by scsi-target-utils-0.9.5-1.fc11.x86_64</span></pre>
<p>หากเจอ error แบบนี้ ต้องลงไฟล์ rpm ชื่อ perl-Config-General ก่อน</p>
<pre>[root@fc11-server ~]# <strong>rpm -i perl-Config-General-2.42-2.fc11.noarch.rpm
</strong>[root@fc11-server ~]# <strong>rpm -i scsi-target-utils-0.9.5-1.fc11.x86_64.rpm</strong></pre>
<h4>รันเซอร์วิส tgtd</h4>
<p>รันเซอร์วิส tgtd (The Generic storage Target Daemon) ก่อน โดยใช้คำสั่ง service</p>
<pre>[root@fc11-server ~]# <strong>/etc/init.d/tgtd start
</strong>Starting SCSI target daemon:                               [  OK  ]</pre>
<h4>สร้าง target ใหม่</h4>
<p>ใช้คำสั่ง tgtadm เพื่อสร้าง target ใหม่ โดยพารามิเตอร์ที่ต้องระบุคือ target id (&#8211;tid) และชื่อ target (-T)</p>
<p>เราสามารถสร้างได้หลาย target ในเซิร์ฟเวอร์เครื่องหนึ่ง แต่ต้องมี id และชื่อแตกต่างกัน สำหรับ  id เราสามารถรันตัวเลขเริ่มจาก 1 ได้ ส่วนชื่อ target ที่นิยมกันจะตั้งชื่อในรูปแบบ iqn (iSCSI Qualified Name)</p>
<p>รูปแบบชื่อแบบ iqn</p>
<pre>iqn.yyyy-mm.{reversed domain name}:resource_name</pre>
<p>ในบทความนี้ตั้งชื่อเป็น iqn.2001-04.com.example:storage.test.disk-01</p>
<p>ตัวอย่างการสร้าง target ใหม่</p>
<pre>[root@fc11-server ~]# <strong>tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2001-04.com.example:storage.test.disk-01</strong></pre>
<p>หลังจากที่สร้างแล้ว สามารถใช้คำสั่ง tgtadm &#8211;op show เพื่อตรวจสอบคอนฟิก target ที่ทำงานอยู่ได้</p>
<pre>[root@fc11-server ~]# <strong>tgtadm --lld iscsi --op show --mode target
</strong><span style="color: #0000ff;">Target 1: iqn.2001-04.com.example:storage.test.disk-01
</span>    System information:
        Driver: <span style="color: #0000ff;">iscsi</span>
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store: No backing store
    Account information:
    ACL information:</pre>
<h4>เพิ่ม logical unit เข้า target</h4>
<p>เมื่อสร้าง target แล้ว จะยังไม่สามารถใช้งานได้ทันที ต้องเพิ่ม logical unit ที่จะทำหน้าที่เป็น storage ของ target นี้ก่อน</p>
<p>เราสามารถใช้ disk partition หรือ LVM logical volume เพื่อทำหน้าที่เป็น logical unit ได้ ในที่นี้จะใช้ disk partition /dev/sdb1</p>
<p><span style="color: #ff0000;">คำเตือน!!! ข้อมูลใน disk ที่จะใช้เป็น logical unit จะถูกทำลายทั้งหมด จาก initiator</span></p>
<p>ตัวอย่างการเพิ่ม logical unit เข้า target</p>
<pre>[root@fc11-server ~]# <strong>tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1</strong></pre>
<p>ตรวจสอบหลังจากการเพิ่ม logical unit</p>
<pre>[root@fc11-server ~]# <strong>tgtadm --lld iscsi --op show --mode target
</strong>Target 1: iqn.2001-04.com.example:storage.test.disk-01
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store: No backing store
<span style="color: #0000ff;">        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 40049 MB
            Online: Yes
            Removable media: No
            Backing store: /dev/sdb1
</span>    Account information:
    ACL information:</pre>
<h4>คอนฟิก bind target</h4>
<p>สุดท้ายต้องระบุการ bind เพื่อเป็นการอนุญาตให้เครื่อง client หรือ initiator สามารถเข้ามาใช้ (access) target ได้</p>
<p>เบื้องต้น เราจะอนุญาตทั้งหมดให้เข้ามาใช้ได้ ด้วยการระบบออปชั่น &#8220;-I ALL&#8221;</p>
<pre>[root@fc11-server ~]# <strong>tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL</strong></pre>
<p>ตรวจสอบหลังจากคอนฟิก</p>
<pre>[root@fc11-server ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2001-04.com.example:storage.test.disk-01
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 40049 MB
            Online: Yes
            Removable media: No
            Backing store: /dev/sdb1
    Account information:
    ACL information:
        <span style="color: #0000ff;"><strong>ALL</strong></span></pre>
<h4>ทดสอบจาก iSCSI initiator</h4>
<p>ทดสอบรันคำสั่ง iscsiadm -m discovery จากเครื่องอื่น เพื่อทดสอบการค้นหา target ที่เพิ่งสร้างขึ้น  สมมติว่าเคื่อง server ที่ทำหน้าที่ target มี ip address เป็น 192.168.1.1</p>
<pre>[root@fc11-client ~]# <strong>iscsiadm -m discovery -t sendtargets -p 192.168.1.1
</strong>192.168.1.1:3260,1 iqn.2001-04.com.example:storage.test.disk-01</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2009/11/configure_iscsi_initiator_on_linux">คอนฟิก iSCSI initiator บน Linux</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2009/11/configure_iscsi_target_on_linux/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>copy ไฟล์ให้เหมือนเดิม</title>
		<link>http://spalinux.com/2009/10/copy_preserve_file_information</link>
		<comments>http://spalinux.com/2009/10/copy_preserve_file_information#comments</comments>
		<pubDate>Sat, 03 Oct 2009 11:02:44 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Utility]]></category>
		<category><![CDATA[cp preserve]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=956</guid>
		<description><![CDATA[ในบทความนี้ขอแสดงตัวอย่างและเปรียบเทียบผลลัพธ์การใช้คำสั่ง cp ด้วยออปชั่นต่างๆ ว่าข้อมูลของไฟล์ (file perrmission, owner, group, timestamps, attributes) ว่าแตกต่างกันอย่างไร หมายเหตุ ตัวอย่างในบทความนี้ทดสอบบน Fedora 11 สร้างไฟล์ทดสอบด้วย user1 [user1@fc11-64a tmp]$ echo "Hello World, this is test file." &#62; user1-file.0 [user1@fc11-64a tmp]$ ls -l total 4 -rw-rw-r-- 1 user1 user1 32 2009-10-03 17:03 user1-file.0 คำสั่ง cp ไม่มีออปชั่น ทดสอบด้วย root เพื่อ copy ไฟล์ โดยไม่มีการระบุออปชั่น [root@fc11-64a tmp]# date Sat [...]]]></description>
			<content:encoded><![CDATA[<p>ในบทความนี้ขอแสดงตัวอย่างและเปรียบเทียบผลลัพธ์การใช้คำสั่ง cp ด้วยออปชั่นต่างๆ ว่าข้อมูลของไฟล์ (file perrmission, owner, group, timestamps, attributes) ว่าแตกต่างกันอย่างไร</p>
<p><span id="more-956"></span></p>
<p>หมายเหตุ ตัวอย่างในบทความนี้ทดสอบบน Fedora 11</p>
<h4>สร้างไฟล์ทดสอบด้วย user1</h4>
<pre>[user1@fc11-64a tmp]$ <strong>echo "Hello World, this is test file." &gt; user1-file.0</strong></pre>
<pre>[user1@fc11-64a tmp]$ <strong>ls -l</strong>
total 4
-rw-rw-r-- 1 user1 user1 32 2009-10-03 17:03 user1-file.0</pre>
<h4>คำสั่ง cp ไม่มีออปชั่น</h4>
<p>ทดสอบด้วย root เพื่อ copy ไฟล์ โดยไม่มีการระบุออปชั่น</p>
<pre>[root@fc11-64a tmp]# <strong>date
</strong>Sat Oct  3 17:06:52 ICT 2009</pre>
<pre>[root@fc11-64a tmp]# <strong>cp user1-file.0 user1-file.1</strong></pre>
<pre>[root@fc11-64a tmp]# ls -l
-rw-rw-r-- 1 user1 user1 32 2009-10-03 17:03 user1-file.0
<span style="color: #ff0000;"><strong>-rw-r--r--</strong></span> 1 <strong><span style="color: #ff0000;">root  root</span></strong>  32 2009-10-03 <strong><span style="color: #ff0000;">17:06</span></strong> user1-file.1</pre>
<p>ไฟล์ที่ copy ได้มา จะมี permission, owner, group, timestamp ไม่ตรงกับไฟล์ต้นฉบับ เพราะดีฟอลต์ คำสั่ง cp จะไม่ preserve ข้อมูลของไฟล์เลย</p>
<h4>cp -p เก็บข้อมูลของไฟล์</h4>
<p>หากต้องการ preserve ข้อมูลของไฟล์ด้วย ต้องระบุออปชั่น &#8216;-p&#8217;</p>
<p>คำอธิบาย ออปชั่น &#8216;-p&#8217; จาก man cp(1)</p>
<pre>    -p    same as --preserve=mode,ownership,timestamps</pre>
<p>ทดสอบ cp ด้วยออปชั่น &#8216;-p&#8217;</p>
<pre>[root@fc11-64a tmp]# <strong>date
</strong>Sat Oct  3 17:08:01 ICT 2009</pre>
<pre>[root@fc11-64a tmp]# <strong>cp -p user1-file.0 user1-file.2</strong></pre>
<pre>[root@fc11-64a tmp]# <strong>ls -l
</strong>-rw-rw-r-- 1 user1 user1 32 2009-10-03 17:03 user1-file.0
-rw-r--r-- 1 root  root  32 2009-10-03 17:06 user1-file.1
-rw-rw-r-- 1 user1 user1 32 2009-10-03 17:03 user1-file.2</pre>
<p>หมายเหตุ หากใช้ user อื่น ที่ไม่ใช่ root เช่น user2 จะไม่สามารถคงข้อมูล owner, group ของไฟล์ได้</p>
<pre>[user2@fc11-64a tmp]$ <strong>cp -p user1-file.0 user1-file.3
</strong>[user2@fc11-64a tmp]$ <strong>ls -l
</strong>-rw-rw-r-- 1 user1 user1 32 2009-10-03 17:03 user1-file.0
-rw-rw-r-- 1 <span style="color: #ff0000;"><strong>user2 user2</strong></span> 32 2009-10-03 17:03 user1-file.3</pre>
<h4>ทดสอบ preserve ข้อมูล ACL</h4>
<p>ใช้ user1 คอนฟิก ACL เพิ่มเติมในไฟล์</p>
<pre>[user1@fc11-64a tmp]$ <strong>getfacl user1-file.0
</strong># file: user1-file.0
# owner: user1
# group: user1
user::rw-
group::rw-
other::r--</pre>
<pre>[user1@fc11-64a tmp]$ <strong>setfacl -m user:user2:rwx user1-file.0</strong></pre>
<pre>[user1@fc11-64a tmp]$ <strong>getfacl user1-file.0
</strong># file: user1-file.0
# owner: user1
# group: user1
user::rw-
user:user2:rwx
group::rw-
mask::rwx
other::r--</pre>
<p>การใช้ออปชั่น &#8216;-p&#8217; สามารถ preserve File ACL ที่คอนฟิกไว้ได้ด้วย</p>
<pre>[root@fc11-64a tmp]# <strong>cp -p user1-file.0 user1-file.3
</strong>[root@fc11-64a tmp]# <strong>ls -l
</strong>-rw-rwxr--+ 1 user1 user1 32 2009-10-03 17:03 user1-file.0
-rw-rwxr--+ 1 user1 user1 32 2009-10-03 17:03 user1-file.3</pre>
<pre>[root@fc11-64a tmp]# <strong>getfacl user1-file.3
</strong># file: user1-file.3
# owner: user1
# group: user1
user::rw-
<span style="color: #0000ff;"><strong>user:user2:rwx</strong>
</span>group::rw-
mask::rwx
other::r--</pre>
<h4>cp -v แสดงไฟล์ที่กำลัง copy</h4>
<p>หากต้องการดูไฟล์ที่กำลัง copy อยู่ สามารถใช้ ออปชั่น &#8216;-v&#8217;</p>
<p>คำอธิบาย ออปชั่น &#8216;-p&#8217; จาก man cp(1)</p>
<pre>    -v, --verbose    explain what is being done</pre>
<pre>[root@fc11-64a tmp]# <strong>cp -pv user1-file.0 user1-file.4
</strong>`user1-file.0' -&gt; `user1-file.4'</pre>
<h4>soft link file</h4>
<p>ใช้ user1 สร้าง soft link ชื่อ user1-link.0 เพื่อ link ไฟล์ไปยัง user1-file.0</p>
<pre>[user1@fc11-64a tmp]$ <strong>ln -s user1-file.0 user1-link.0
</strong>[user1@fc11-64a tmp]$ <strong>ls -l
</strong>-rw-rwxr--+ 1 user1 user1 32 2009-10-03 17:03 user1-file.0
lrwxrwxrwx  1 user1 user1 12 2009-10-03 17:15 user1-link.0 -&gt; user1-file.0</pre>
<p>ใช้คำสั่ง cp -p เพื่อ copy ไฟล์ soft link</p>
<pre>[root@fc11-64a tmp]# <strong>cp -p user1-link.0 user1-link.1</strong></pre>
<pre>[root@fc11-64a tmp]# <strong>ls -l
</strong>-rw-rwxr--+ 1 user1 user1 32 2009-10-03 17:03 user1-file.0
lrwxrwxrwx  1 user1 user1 12 2009-10-03 17:15 user1-link.0 -&gt; user1-file.0
-rw-rwxr--+ 1 user1 user1 <span style="color: #ff0000;">32</span> 2009-10-03 17:03 user1-link.1</pre>
<p>ผลลัพธ์กลับเป็นการ copy ไฟล์ต้นฉบับ user1-file.0 ไม่ใช่ link file</p>
<h4>cp -d เก็บสถานะ link file</h4>
<p>หากต้องการ copy ไฟล์แล้วยังคงสถานะ link file ไว้ ต้องใช้ ออปชั่น &#8216;-d&#8217;</p>
<p>คำอธิบาย ออปชั่น &#8216;-p&#8217; จาก man cp(1)</p>
<pre>    -d    same as --no-dereference --preserve=links</pre>
<pre>[root@fc11-64a tmp]# <strong>cp -pd user1-link.0 user1-link.2</strong></pre>
<pre>[root@fc11-64a tmp]# <strong>ls -l
</strong>total 8
-rw-rwxr--+ 1 user1 user1 32 2009-10-03 17:03 user1-file.0
lrwxrwxrwx  1 user1 user1 12 2009-10-03 17:15 user1-link.0 -&gt; user1-file.0
-rw-rwxr--+ 1 user1 user1 32 2009-10-03 17:03 user1-link.1
lrwxrwxrwx  1 user1 user1 12 2009-10-03 17:18 user1-link.2 -&gt; user1-file.0</pre>
<h4>copy ทั้งไดเร็คทอรี</h4>
<p>ใช้ user1 สร้างไดเร็คทอรี และไฟล์ย่อยๆ ข้างใน</p>
<pre>[user1@fc11-64a tmp]$ <strong>mkdir user1-dir.0
</strong>[user1@fc11-64a tmp]$ <strong>touch user1-dir.0/sub-file1.txt
</strong>[user1@fc11-64a tmp]$ <strong>touch user1-dir.0/sub-file2.txt
</strong>[user1@fc11-64a tmp]$ <strong>touch user1-dir.0/sub-file3.txt
</strong>[user1@fc11-64a tmp]$ <strong>touch user1-dir.0/sub-file4.txt
</strong>[user1@fc11-64a tmp]$ <strong>ls -l
</strong>total 0
drwxrwxr-x 2 user1 user1 86 2009-10-03 17:24 user1-dir.0
[user1@fc11-64a tmp]$ <strong>ls -l user1-dir.0/
</strong>total 0
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file1.txt
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file2.txt
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file3.txt
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file4.txt</pre>
<p>ทดลองใช้ root เพื่อ copy ไฟล์ทั้งไดเร็คทอรี</p>
<pre>[root@fc11-64a tmp]# <strong>cp -pd user1-dir.0/ user1-dir.1
</strong>cp: omitting directory `user1-dir.0/'</pre>
<pre>[root@fc11-64a tmp]# <strong>ls -l
</strong>total 0
drwxrwxr-x 2 user1 user1 86 2009-10-03 17:24 user1-dir.0</pre>
<p>ออปชั่นแค่นี้ ไม่สามารถ copy ไดเร็คทอรี ได้</p>
<h4>cp -R ทั้งไดเร็คทอรี</h4>
<p>หากต้องการ copy ทั้งไดเร็คทอรี ต้องใช้ออปชั่น &#8216;-R&#8217; หรือ &#8216;-r&#8217;</p>
<p>คำอธิบาย ออปชั่น &#8216;-p&#8217; จาก man cp(1)</p>
<pre>    -R, -r, --recursive    copy directories recursively</pre>
<pre>[root@fc11-64a tmp]# <strong>cp -pvdR user1-dir.0/ user1-dir.1
</strong>`user1-dir.0/' -&gt; `user1-dir.1'
`user1-dir.0/sub-file1.txt' -&gt; `user1-dir.1/sub-file1.txt'
`user1-dir.0/sub-file2.txt' -&gt; `user1-dir.1/sub-file2.txt'
`user1-dir.0/sub-file3.txt' -&gt; `user1-dir.1/sub-file3.txt'
`user1-dir.0/sub-file4.txt' -&gt; `user1-dir.1/sub-file4.txt'</pre>
<p>ตรวจสอบไดเร็คทอรี และไฟล์ที่อยู่ข้างใน</p>
<pre>[root@fc11-64a tmp]# <strong>ls -l
</strong>total 0
drwxrwxr-x 2 user1 user1 86 2009-10-03 17:24 user1-dir.0
drwxrwxr-x 2 user1 user1 86 2009-10-03 17:24 user1-dir.1
[root@fc11-64a tmp]# <strong>ls -l user1-dir.1/
</strong>total 0
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file1.txt
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file2.txt
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file3.txt
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file4.txt</pre>
<h4>cp -a ออปชั่นเดียวทำทุกอย่าง</h4>
<p>ออปชั่นที่ยกตัวอย่างข้างบนมาทั้งหมด (ยกเว้น -v) สามารถเปลี่ยนเป็นออปชั่นเดียวได้คือ &#8216;-a&#8217; เพื่อการ copy ไฟล์แล้วคงข้อมูลของไฟล์ไว้ทั้งหมด รวมทั้ง copy ไดเร็คทอรี ไฟล์ย่อยๆ ได้ทั้งหมด</p>
<p>คำอธิบาย ออปชั่น &#8216;-p&#8217; จาก man cp(1)</p>
<pre>    -a, --archive    same as -dR --preserve=all</pre>
<pre>[root@fc11-64a tmp]# <strong>cp -av user1-dir.0/ user1-dir.2
</strong>`user1-dir.0/' -&gt; `user1-dir.2'
`user1-dir.0/sub-file1.txt' -&gt; `user1-dir.2/sub-file1.txt'
`user1-dir.0/sub-file2.txt' -&gt; `user1-dir.2/sub-file2.txt'
`user1-dir.0/sub-file3.txt' -&gt; `user1-dir.2/sub-file3.txt'
`user1-dir.0/sub-file4.txt' -&gt; `user1-dir.2/sub-file4.txt'</pre>
<pre>[root@fc11-64a tmp]# <strong>ls -l
</strong>total 0
drwxrwxr-x 2 user1 user1 86 2009-10-03 17:24 user1-dir.0
drwxrwxr-x 2 user1 user1 86 2009-10-03 17:24 user1-dir.1
<span style="color: #0000ff;">drwxrwxr-x 2 user1 user1 86 2009-10-03 17:24 user1-dir.2
</span>[root@fc11-64a tmp]# <strong>ls -l user1-dir.2/
</strong>total 0
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file1.txt
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file2.txt
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file3.txt
-rw-rw-r-- 1 user1 user1 0 2009-10-03 17:24 sub-file4.txt</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li>man cp(1)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2009/10/copy_preserve_file_information/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>คอนฟิก XFS Filesystem</title>
		<link>http://spalinux.com/2009/10/configure_xfs_filesystem</link>
		<comments>http://spalinux.com/2009/10/configure_xfs_filesystem#comments</comments>
		<pubDate>Sat, 03 Oct 2009 09:39:01 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[xfs filesystem]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=952</guid>
		<description><![CDATA[โดยดีฟอลต์การติดตั้ง Fedora ไม่ว่าจะเป็นเวอร์ชั่นเก่าหรือใหม่ Filesystem ที่ถูกเลือกเป็นดีฟอลต์จะเป็นแบบ ext ตั้งแต่ ext2, ext3 และล่าสุดเป็น ext4 ที่จริงตอนติดตั้ง มีให้เลือก Filesystem แบบอื่นอยู่ด้วยเช่น xfs แต่ถ้าตอนติดตั้งไม่ได้เลือก แล้วเราติดตั้ง ลงโปรแกรมต่างๆ คอนฟิก และระบบใช้งานไปแล้ว ไม่อยากเสียเวลาติดตั้งใหม่ทั้งหมด วันหนึ่งมี disk ก้อนใหม่เพิ่มขึ้นมา แล้วอยากจะใช้ Filesystem แบบ xfs บ้าง บทความนี้จะอธิบายการติดตั้งโปรแกรมเพิ่มเติม เพื่อให้เครื่องเราสามารถเรียกใช้ Filesystem แบบ xfs ได้ สองส่วนที่ต้องคอนฟิกเพิ่มเติม คือลงไฟล์ rpm สำหรับโปรแกรมจัดการ xfs filesystem และอีกส่วนคือคำสั่งในการสร้าง filesystem ในที่นี้จะสมมตว่าเราเพิ่มดิสก์ ก้อนที่ 2 ชื่อ /dev/sdb เข้าไปในเครื่อง ทดสอบกับ Fedora 11 ติดตั้งโปรแกรม xfsprogs [...]]]></description>
			<content:encoded><![CDATA[<p>โดยดีฟอลต์การติดตั้ง Fedora ไม่ว่าจะเป็นเวอร์ชั่นเก่าหรือใหม่ Filesystem ที่ถูกเลือกเป็นดีฟอลต์จะเป็นแบบ ext ตั้งแต่ ext2, ext3 และล่าสุดเป็น ext4</p>
<p>ที่จริงตอนติดตั้ง มีให้เลือก Filesystem แบบอื่นอยู่ด้วยเช่น xfs แต่ถ้าตอนติดตั้งไม่ได้เลือก แล้วเราติดตั้ง ลงโปรแกรมต่างๆ คอนฟิก และระบบใช้งานไปแล้ว ไม่อยากเสียเวลาติดตั้งใหม่ทั้งหมด วันหนึ่งมี disk ก้อนใหม่เพิ่มขึ้นมา แล้วอยากจะใช้ Filesystem แบบ xfs บ้าง</p>
<p>บทความนี้จะอธิบายการติดตั้งโปรแกรมเพิ่มเติม เพื่อให้เครื่องเราสามารถเรียกใช้ Filesystem แบบ xfs ได้</p>
<p><span id="more-952"></span></p>
<p>สองส่วนที่ต้องคอนฟิกเพิ่มเติม คือลงไฟล์ rpm สำหรับโปรแกรมจัดการ xfs filesystem และอีกส่วนคือคำสั่งในการสร้าง filesystem</p>
<p>ในที่นี้จะสมมตว่าเราเพิ่มดิสก์ ก้อนที่ 2 ชื่อ /dev/sdb เข้าไปในเครื่อง ทดสอบกับ Fedora 11</p>
<h4>ติดตั้งโปรแกรม xfsprogs</h4>
<p>โปรแกรม xfsprogs มีอยู่ในแผ่นดีวีดีติดตี้ง Fedora อยู่แล้ว ใส่แผ่นแล้วใช้คำสั่ง mount เพื่อติดตั้งโปรแกรม</p>
<pre>[root@fc11-64a ~]# <strong>mount /dev/scd0 /media/
</strong>mount: block device /dev/sr0 is write-protected, mounting read-only</pre>
<pre>[root@fc11-64a ~]# <strong>cd /media/Packages/
</strong>[root@fc11-64a Packages]#</pre>
<pre>[root@fc11-64a Packages]# <strong>rpm -ivh xfsprogs-3.0.0-2.fc11.x86_64.rpm
</strong>Preparing...                ########################################### [100%]
   1:xfsprogs               ########################################### [100%]</pre>
<p>จากการติดตั้งโปรแกรม xfsprogs เราจะได้คำสั่งที่ใช้ในการจัดการ คอนฟิก xfs filesystem</p>
<pre>[root@fc11-64a ~]# <strong>rpm -ql xfsprogs
</strong>/lib64/libhandle.so.1
/lib64/libhandle.so.1.0.3
/sbin/fsck.xfs
/sbin/mkfs.xfs
/sbin/xfs_repair
/usr/sbin/xfs_admin
/usr/sbin/xfs_bmap
/usr/sbin/xfs_check
/usr/sbin/xfs_copy
/usr/sbin/xfs_db
/usr/sbin/xfs_estimate
/usr/sbin/xfs_freeze
/usr/sbin/xfs_fsr
/usr/sbin/xfs_growfs
/usr/sbin/xfs_info
/usr/sbin/xfs_io
/usr/sbin/xfs_logprint
/usr/sbin/xfs_mdrestore
/usr/sbin/xfs_metadump
/usr/sbin/xfs_mkfile
/usr/sbin/xfs_ncheck
/usr/sbin/xfs_quota
/usr/sbin/xfs_rtcp
...</pre>
<h4>สร้าง xfs filesystem</h4>
<p>สร้าง partition บนดิสก์ก้อนใหม่ แล้วใช้คำสั่ง mkfs.xfs เพื่อสร้าง xfs filesystem (format) บน partition</p>
<p>หมายเหตุ หากใช้คำสั่ง mkfs.xfs แล้วเจอข้อความ error แบบนี้ คือ partition นี้มี filesystem แบบอื่นอยู่แล้ว (ในที่นี้คือ ext3) หากต้องการสร้าง filesystem แบบ xfs ทับลงไปจริงๆ ต้องระบุออปชั่น &#8216;-f&#8217; ด้วย</p>
<pre>[root@fc11-64a ~]# <strong>mkfs.xfs /dev/sdb1
</strong>mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (ext3).
mkfs.xfs: Use the -f option to force overwrite.</pre>
<pre>[root@fc11-64a ~]# <strong>mkfs.xfs -f /dev/sdb1</strong>
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=2444388 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=9777552, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=4774, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0</pre>
<p>สร้างไดเร็คทอรี (mount point) สำหรับ mount partition ที่สร้างใหม่</p>
<pre>[root@fc11-64a ~]# <strong>mkdir /export</strong></pre>
<pre>[root@fc11-64a ~]# <strong>mount /dev/sdb1 /export</strong></pre>
<pre>[root@fc11-64a ~]# <strong>mount</strong>
...
/dev/sdb1 on /export type xfs (rw)</pre>
<pre>[root@fc11-64a ~]# <strong>df -h
</strong>Filesystem            Size  Used Avail Use% Mounted on
...
/dev/sdb1              38G  4.2M   38G   1% /export</pre>
<p>หากทดสอบจนแน่ใจว่าใช้งานได้ตามปกติ ถ้าต้องการให้ mount partition นี้ ตอนบู๊ตเครื่องโดยอัตโนมัติ สามารถทำได้โดยเพิ่มคอนฟิกในไฟล์ /etc/fstab</p>
<pre>[root@fc11-64a ~]# <strong>cat /etc/fstab
</strong>...
/dev/sdb1               /export                 xfs     defaults        1 2</pre>
<h4>การเปลี่ยน filesystem จากแบบอื่น ให้เป็น xfs</h4>
<p>การเปลี่ยน filesystem จากแบบอื่น ให้เป็น xfs ต้องทำการ backup ข้อมูลที่อยู่เดิม ก่อน แล้วใช้คำสั่ง mkfs.xfs เพื่อสร้าง filesystem แบบ xfs ขึ้นมาใหม่ แล้วค่อย restore ข้อมูลกลับลงไป เท่าที่ทราบ ไม่มีคำสั่งหรือโปรแกรมไหน สามารถเปลี่ยนแปลง filesystem ให้เป็น xfs ได้โดยตรง</p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2008/12/compare_ext3_ext4_xfs_on_fedora_10">เปรียบเทียบ ext3, ext4 และ xfs บน Fedora 10</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2009/10/configure_xfs_filesystem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

