<?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; RAID</title>
	<atom:link href="http://spalinux.com/tag/raid/feed" rel="self" type="application/rss+xml" />
	<link>http://spalinux.com</link>
	<description>เพื่อชีวิตที่ผ่อนคลายของคนใช้ลีนุกซ์</description>
	<lastBuildDate>Sat, 12 May 2012 10:38:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>เปรียบเทียบ RAID-0 จากคำสั่ง mdadm และ lvm ตอนที่ 3</title>
		<link>http://spalinux.com/2009/06/compare_raid-0_between_mdadm_and_lvm_part_3</link>
		<comments>http://spalinux.com/2009/06/compare_raid-0_between_mdadm_and_lvm_part_3#comments</comments>
		<pubDate>Sun, 07 Jun 2009 10:12:40 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[Disk]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[RAID]]></category>
		<category><![CDATA[linear]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[stripe]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=774</guid>
		<description><![CDATA[ในตอนสุรปนี้ จะเพิ่มผลลัพธ์จากการรันคำสั่ง sysbench เพื่อทดสอบ fileio ทั้งการอ่านและเขียนไฟล์แบบ sequential, random ก่อนการรัน sysbench เพื่อทดสอบ ต้องสร้างไฟล์ (prepare) ใน mount point ของ filesystem ที่ต้องการทดสอบ เช่นถ้า mount ไว้ที่ /mnt/lv0/ ต้อง cd เข้าไปในพาธนี้แล้วรันคำสั่ง [root@fc10-disk ~]# cd /mnt/lv0/ [root@fc10-disk lv0]# sysbench --test=fileio prepare Sequential Read test (seqrd) รันคำสั่ง [root@fc10-disk ~]# sysbench --test=fileio --file-test-mode=seqrd run Sequential Write test (seqwr) รันคำสั่ง [root@fc10-disk ~]# sysbench --test=fileio [...]]]></description>
			<content:encoded><![CDATA[<p>ในตอนสุรปนี้ จะเพิ่มผลลัพธ์จากการรันคำสั่ง sysbench เพื่อทดสอบ fileio ทั้งการอ่านและเขียนไฟล์แบบ sequential, random</p>
<p><span id="more-774"></span></p>
<p>ก่อนการรัน sysbench เพื่อทดสอบ ต้องสร้างไฟล์ (prepare) ใน mount point ของ filesystem ที่ต้องการทดสอบ เช่นถ้า mount ไว้ที่ /mnt/lv0/ ต้อง cd เข้าไปในพาธนี้แล้วรันคำสั่ง</p>
<pre>[root@fc10-disk ~]# c<strong>d /mnt/lv0/
</strong>[root@fc10-disk lv0]# <strong>sysbench --test=fileio prepare</strong></pre>
<p><strong>Sequential Read test (seqrd) </strong>รันคำสั่ง</p>
<pre>[root@fc10-disk ~]# <strong>sysbench --test=fileio --file-test-mode=seqrd run</strong></pre>
<p><strong>Sequential Write test (seqwr) </strong>รันคำสั่ง</p>
<pre>[root@fc10-disk ~]# <strong>sysbench --test=fileio --file-test-mode=seqwr run</strong></pre>
<p><strong>Random Read test (rndrd)</strong> รันคำสั่ง</p>
<pre>[root@fc10-disk ~]# <strong>sysbench --test=fileio --file-test-mode=rndrd run</strong></pre>
<p><strong>Random Write test (rndwr)</strong> รันคำสั่ง</p>
<pre>[root@fc10-disk ~]# s<strong>ysbench --test=fileio --file-test-mode=rndwr run</strong></pre>
<p>ผลลัพธ์การรันคำสั่ง dd ในตอนที่ผ่านมา จะใกล้เคียงกับการรัน Sequential Write test</p>
<p>ตารางสรุปผลการทดสอบ</p>
<table style="width: 581pt; border-collapse: collapse;" border="0" cellspacing="0" cellpadding="0" width="777">
<colgroup span="1">
<col style="width: 83pt;" span="7" width="111"></col>
</colgroup>
<tbody>
<tr style="height: 16.05pt;" height="21">
<td class="xl24" style="border: 0.5pt none #ece9d8; background-color: #003300; width: 83pt; height: 16.05pt;" width="111" height="21"></td>
<td class="xl25" style="background-color: #003300; width: 83pt; border: 0.5pt 0.5pt 0.5pt medium none #ece9d8;" width="111" align="right"><strong><span style="color: #ffffff; font-size: x-small;">/dev/sdc1</span></strong></td>
<td class="xl25" style="background-color: #003300; width: 83pt; border: 0.5pt 0.5pt 0.5pt medium none #ece9d8;" width="111" align="right"><strong><span style="color: #ffffff; font-size: x-small;">/dev/sdd1</span></strong></td>
<td class="xl25" style="background-color: #003300; width: 83pt; border: 0.5pt 0.5pt 0.5pt medium none #ece9d8;" width="111" align="right"><strong><span style="color: #ffffff; font-size: x-small;">mdadm linear</span></strong></td>
<td class="xl25" style="background-color: #003300; width: 83pt; border: 0.5pt 0.5pt 0.5pt medium none #ece9d8;" width="111" align="right"><strong><span style="color: #ffffff; font-size: x-small;">mdadm stripe</span></strong></td>
<td class="xl25" style="background-color: #003300; width: 83pt; border: 0.5pt 0.5pt 0.5pt medium none #ece9d8;" width="111" align="right"><strong><span style="color: #ffffff; font-size: x-small;">LVM linear</span></strong></td>
<td class="xl25" style="background-color: #003300; width: 83pt; border: 0.5pt 0.5pt 0.5pt medium none #ece9d8;" width="111" align="right"><strong><span style="color: #ffffff; font-size: x-small;">LVM stripe</span></strong></td>
</tr>
<tr style="height: 16.05pt;" height="21">
<td class="xl26" style="background-color: #ccffcc; height: 16.05pt; border: medium 0.5pt 0.5pt none #ece9d8;" height="21"><span style="font-size: x-small;">xfs (blocks)</span></td>
<td class="xl27" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">195,263,012</span></td>
<td class="xl27" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">195,263,012</span></td>
<td class="xl27" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">390,585,600</span></td>
<td class="xl27" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">390,585,344</span></td>
<td class="xl27" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">390,578,176</span></td>
<td class="xl27" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">390,577,152</span></td>
</tr>
<tr style="height: 16.05pt;" height="21">
<td class="xl26" style="background-color: #ccffcc; height: 16.05pt; border: medium 0.5pt 0.5pt none #ece9d8;" height="21"><span style="font-size: x-small;">dd (MB/s)</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">52.00</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">47.10</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">52.70</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">96.50</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">51.80</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">94.80</span></td>
</tr>
<tr style="height: 16.05pt;" height="21">
<td class="xl26" style="background-color: #ccffcc; height: 16.05pt; border: medium 0.5pt 0.5pt none #ece9d8;" height="21"><span style="font-size: x-small;">seqrd (MB/s)</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">58.08</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">60.71</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">57.71</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">115.78</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">58.22</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">104.64</span></td>
</tr>
<tr style="height: 16.05pt;" height="21">
<td class="xl26" style="background-color: #ccffcc; height: 16.05pt; border: medium 0.5pt 0.5pt none #ece9d8;" height="21"><span style="font-size: x-small;">seqrw (MB/s)</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">43.76</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">38.96</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">46.89</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">85.04</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">47.92</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">84.15</span></td>
</tr>
<tr style="height: 16.05pt;" height="21">
<td class="xl26" style="background-color: #ccffcc; height: 16.05pt; border: medium 0.5pt 0.5pt none #ece9d8;" height="21"><span style="font-size: x-small;">rndrd (MB/s)</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">3.92</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">3.96</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">3.92</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">4.34</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">3.97</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">4.31</span></td>
</tr>
<tr style="height: 16.05pt;" height="21">
<td class="xl26" style="background-color: #ccffcc; height: 16.05pt; border: medium 0.5pt 0.5pt none #ece9d8;" height="21"><span style="font-size: x-small;">rndwr (MB/s)</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">0.61</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">0.69</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">2.88</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">2.08</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">2.91</span></td>
<td class="xl28" style="BORDER-BOTTOM: #ece9d8 0.5pt; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: #ccffcc; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8 0.5pt" align="right"><span style="font-size: x-small;">2.08</span></td>
</tr>
</tbody>
</table>
<p>คงไม่สรุปใดๆ ทั้งสิ้น เกี่ยวกับผลลัพธ์ที่ได้ ว่าคอนฟิก mdadm หรือ lvm เร็วกว่ากัน เพราะตัวเลขออกมาใกล้เคียงกัน อีกทั้งการทดสอบนี้ อาจไม่ตรงกับหลักการทางสถิติ เช่น ทดลองรันไม่กี่ครั้ง หรือในขณะที่รันทดสอบอาจมี process อื่นๆ ในเครื่องรันขึ้นมาทำงาน (ทั้งๆ ที่พยายามลดให้เหลือน้อยที่สุดแล้ว) และด้วยคุณสมบัติของ mdadm และ LVM ที่แตกต่างกัน ทางเลือกคงขึ้นอยู่กับลักษณะการใช้งานของแต่ละเครื่องว่าเป็นอย่างไร &#8230;</p>
<p>แต่&#8230;ถ้าให้เลือก ความเห็นส่วนตัว ผมเลือก LVM ครับ <img src='http://spalinux.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2009/06/compare_raid-0_between_mdadm_and_lvm_part_1">เปรียบเทียบ RAID-0 จากคำสั่ง mdadm และ lvm ตอนที่ 1</a></li>
<li><a href="http://spalinux.com/2009/06/compare_raid-0_between_mdadm_and_lvm_part_2">เปรียบเทียบ RAID-0 จากคำสั่ง mdadm และ lvm ตอนที่ 2</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2009/06/compare_raid-0_between_mdadm_and_lvm_part_3/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ทดสอบแก้ไขดิสก์ที่มีปัญหาใน Software-RAID บนลินุกซ์</title>
		<link>http://spalinux.com/2008/08/troubleshooting_software_raid_on_linux</link>
		<comments>http://spalinux.com/2008/08/troubleshooting_software_raid_on_linux#comments</comments>
		<pubDate>Sat, 09 Aug 2008 13:11:04 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[RAID]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=78</guid>
		<description><![CDATA[หลังจากที่เราคอนฟิก Software RAID จากบทความที่ผ่านมาแล้ว ในบทความนี้จะกล่าวถึงวิธีการทดสอบในกรณีที่ดิสก์มีปัญหา วิธีการแก้ไข การป้องกันโดยเพิ่มดิสก์เพื่อทำหน้าที่เป็น spare สถานการณ์ปกติหลังจากคอนฟิก RAID-5 เริ่มต้นจะเราจะสร้าง RAID-5 ที่ประกอบด้วยดิสก์จำนวน 3 partition ซึ่งประกอบด้วย /dev/sdb1, /dev/sdc1, /dev/sdd1 ตัวอย่างการสร้าง RAID-5 [root@test-raid ~]# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 mdadm: layout defaults to left-symmetric mdadm: chunk size defaults to 64K mdadm: size set to 987840K mdadm: array /dev/md0 started. ให้รอจนกว่าการสถานะการ build ข้อมูลของ [...]]]></description>
			<content:encoded><![CDATA[<p>หลังจากที่เราคอนฟิก Software RAID จากบทความที่ผ่านมาแล้ว ในบทความนี้จะกล่าวถึงวิธีการทดสอบในกรณีที่ดิสก์มีปัญหา วิธีการแก้ไข การป้องกันโดยเพิ่มดิสก์เพื่อทำหน้าที่เป็น spare</p>
<p><span id="more-78"></span></p>
<p><strong>สถานการณ์ปกติหลังจากคอนฟิก RAID-5</strong><br />
เริ่มต้นจะเราจะสร้าง RAID-5 ที่ประกอบด้วยดิสก์จำนวน 3 partition ซึ่งประกอบด้วย /dev/sdb1, /dev/sdc1, /dev/sdd1</p>
<p>ตัวอย่างการสร้าง RAID-5</p>
<pre>[root@test-raid ~]# <strong>mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1</strong>
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 64K
mdadm: size set to 987840K
mdadm: array /dev/md0 started.</pre>
<p>ให้รอจนกว่าการสถานะการ build ข้อมูลของ RAID-5 ครบ 100% แล้วสร้าง filesystem เพื่อ mount เข้ากับ /export</p>
<pre>[root@test-raid ~]#  <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[2] sdc1[1] sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

unused devices: &lt;none&gt;

[root@test-raid ~]# <strong>mkfs.ext3 /dev/md0</strong>
[root@test-raid ~]# <strong>mount /dev/md0 /export</strong></pre>
<p><strong>เมื่อดิสก์มีปัญหา (fail)</strong><br />
เราสามารถใช้คำสั่ง mdadm &#8211;fail เพื่อใช้ในการจำลองสถานการณ์ว่าดิสก์มีปัญหา เพื่อดูผลกระทบที่เกิดขึ้น โดยไม่จำเป็นต้องไปดึงดิสก์ออกจริงๆ ซึ่งเสี่ยงต่ออุปกรณ์เสียหาย</p>
<p>ตัวอย่างการใช้คำสั่ง mdadm &#8211;fail เพื่อจำลองว่าดิสก์ /dev/sdc มีปัญหา</p>
<pre>[root@test-raid ~]# <strong>mdadm /dev/md0 --fail /dev/sdc1</strong>
mdadm: set /dev/sdc1 faulty in /dev/md0</pre>
<p>ตรวจสอบสถานะ RAID-5 เมื่อดิสก์มีปัญหา</p>
<pre>[root@test-raid ~]# <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[2] <span style="color: #ff0000;"><strong>sdc1[3](F)</strong></span> sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]

unused devices: &lt;none&gt;</pre>
<p>จากไฟล์ /proc/mdstat จะเห็นการเปลี่ยนแปลงคือ สถานะในวงเล็บหลัง sdc1 เปลี่ยนเป็นตัวอักษร F ซึ่งหมายถึงดิสก์นี้มีปัญหา (fail)</p>
<p>เนื่องจากเป็น RAID-5 ทำให้ /dev/md0 ยังสามารถใช้งานได้อยู่ในกรณีที่ดิสก์มีปัญหาก้อนเดียว โดยข้อมูลไม่เสียหาย ซึ่งสามารถตรวจสอบได้ ในที่เรา mount ไว้ ซึ่งยังสามารถเขียน/อ่าน ข้อมูลต่างๆ ได้ตามปกติ</p>
<p><strong>การคอนฟิกดิสก์ที่มีปัญหาออกจาก RAID</strong><br />
เมื่อดิสก์ที่มีปัญหาไม่ว่าจากการคอนฟิกโดยใช้คำสั่ง mdadm หรือเสียจริงๆ ที่อุปกรณ์เลย การแก้ไขในเบื้องต้น ต้องเอาคอนฟิกของดิสก์นั้นออกจาก RAID</p>
<p>ตัวอย่างการใช้คำสั่ง mdadm &#8211;remove เพื่อเอาคอนฟิกของดิสก์ที่มีปัญหาออก</p>
<pre>[root@test-raid ~]# <strong>mdadm /dev/md0 --remove /dev/sdc1</strong>
mdadm: hot removed /dev/sdc1</pre>
<p>ตรวจสอบสถานะของ RAID หลังจากที่เอาคอนฟิกดิสก์ที่มีปัญหาออก</p>
<pre>[root@test-raid ~]# <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[2] sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]

unused devices: &lt;none&gt;</pre>
<p>จากผลลัพธ์ ดิสก์ที่มีปัญหา (sdc) จะหายไป ถ้าเสียที่อุปกรณ์จริงๆ ก็ต้องดึงดิสก์ออกจากเครื่อง เพื่อเปลี่ยนตัวใหม่เข้ามาแทน</p>
<p><strong>การเปลี่ยนดิสก์ก้อนใหม่เข้าไปใน RAID</strong><br />
เมื่อได้ดิสก์ก้อนใหม่ที่ใช้งานได้แล้ว ต้องคอนฟิกเพื่อเพิ่มดิสก์ก้อนนี้เข้าไปใน RAID</p>
<p>ตัวอย่างการใช้คำสั่ง mdadm &#8211;add เพื่อเพิ่มดิสก์ก้อนใหม่เข้าไปใน RAID</p>
<pre>[root@test-raid ~]# <strong>mdadm /dev/md0 --add /dev/sdc1</strong>
mdadm: re-added /dev/sdc1</pre>
<p>เมื่อเพิ่มดิสก์เข้าไปใหม่ จะมีการ re-build ข้อมูลใน RAID-5 ใหม่อีกครั้ง เพื่อทำให้คอนฟิกกลับมาเป็นปกติ</p>
<p>ตัวอย่างสถานะของ RAID-5 ในขณะที่มีการ re-build ข้อมูลใหม่</p>
<pre>[root@test-raid ~]# <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sdc1[3] sdd1[2] sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
      [==&gt;..................]  recovery = 12.2% (121296/987840) finish=1.7min speed=8086K/sec

unused devices: &lt;none&gt;</pre>
<p>ตัวอย่างสถานะของ RAID-5 เมื่อการ re-build เสร็จสิ้น</p>
<pre>[root@test-raid ~]# <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sdc1[1] sdd1[2] sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

unused devices: &lt;none&gt;</pre>
<p>จากที่ดิสก์มีปัญหาหนึ่งก้อน ดึงดิสก์ก้อนที่มีปัญหาออก เปลี่ยนดิสก์ใหม่ที่ใช้ได้ลงไป จนถึง re-build ข้อมูลใน RAID-5 ใหม่ ผู้ใช้งานทั่วไป (users) ยังสามารถที่จะเขียน/อ่าน ข้อมูลได้ตลอดเวลา โดยอาจมีผลกระทบบ้างเช่นความเร็วจะลดลง</p>
<p><strong>การเพิ่มดิสก์เพื่อทำหน้าที่เป็น Spare</strong></p>
<p>ถึงแม้ RAID-5 จะรองรับปัญหาในกรณีที่ดิสก์เสียได้ก้อนนึง แต่ข้อควรระวังอย่างหนึ่งคือ ในช่วงที่รออุปกรณ์ใหม่มาทดแทนเพื่อเปลี่ยน จะมีดิสก์ที่เสียอีกไม่ได้แล้ว ซึ่งถ้าเสียอีกหนึ่งก้อน ข้อมูลทั้งหมดจะเสียหายไปเลย</p>
<p>วิธีการหนึ่งที่ช่วยแก้ไขปัญหานี้ได้คือคอนฟิกดิสก์เปล่าๆ ก้อนหนึ่งเพื่อทำหน้าที่เป็น spare โดยดิสก์ที่เป็น spare นี้ในสถานการณ์ปกติจะไม่ถูกนำมาใช้งาน แต่จะถูกใช้โดยอัตโนมัติในกรณีที่ดิสก์ที่คอนฟิกอยู่ใน RAID-5 มีปัญหาเท่านั้น</p>
<p>ตัวอย่างการเพิ่ม /dev/sde เพื่อทำหน้าที่เป็น spare</p>
<pre>[root@test-raid ~]# <strong>mdadm /dev/md0 --add /dev/sde1</strong>
mdadm: added /dev/sde1</pre>
<p>สถานะของ RAID เมื่อมีการเพิ่มดิสก์เพื่อทำหน้าที่เป็น spare</p>
<pre>[root@test-raid ~]# <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 <span style="color: #0000ff;"><strong>sde1[3](S)</strong></span> sdc1[1] sdd1[2] sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

unused devices: &lt;none&gt;</pre>
<p>จากผลลัพธ์สถานะของดิสก์ที่ทำหน้าที่เป็น spare จะมีตัวอักษร S อยู่ในวงเล็บ</p>
<p><strong>ทดสอบการทำงานของ spare เมื่อดิสก์ใน RAID มีปัญหา</strong><br />
เราสามารถทดสอบการทำงานของ spare ได้ โดยจำลองว่าดิสก์ที่อยู่ใน RAID ก้อนหนึ่งมีปัญหา เช่นสมมติว่า sdd เสียหายไป</p>
<pre>[root@test-raid ~]# <strong>mdadm /dev/md0 --fail /dev/sdd1</strong>
mdadm: set /dev/sdd1 faulty in /dev/md0</pre>
<p>ตรวจสอบสถานะของ RAID ในกรณีที่มีดิสก์ spare</p>
<pre>[root@test-raid ~]# <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 <span style="color: #0000ff;"><strong>sde1[3]</strong></span> sdc1[1] <span style="color: #ff0000;"><strong>sdd1[4](F)</strong></span> sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
      [====&gt;................]  recovery = 21.3% (211584/987840) finish=1.5min speed=8463K/sec

unused devices: &lt;none&gt;</pre>
<p>จากผลลัพธ์จะเห็นว่าดิสก์ spare จะถูกนำมาอยู่ใน RAID โดยอัตโนมัติเลย โดยเปลี่ยนตัวอักษรจาก (S) เป็น (3) และเมื่อถูก re-build เรียบร้อยจะเปลี่ยนเป็น (2)</p>
<p>ตัวอย่างสถานะของ RAID-5 เมื่อดิสก์ spare ถูกนำมารวมเรียบร้อย</p>
<pre>[root@test-raid ~]# <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sde1[2] sdc1[1] sdd1[3](F) sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

unused devices: &lt;none&gt;</pre>
<p><strong>การเปลี่ยนดิสก์ที่มีปัญหาในกรณีที่มี spare</strong><br />
จากตัวอย่างที่แล้ว เราทำให้ /dev/sdd มีปัญหา การแก้ไขก็ต้องเอาคอนฟิกออกไป แล้วเพิ่มกลับเข้าไปใหม่</p>
<p>แต่ให้สังเกตว่า ในกรณีที่มีดิสก์ spare อยู่แล้ว เมื่อเปลี่ยนดิสก์อันใหม่ลงไปแทนที่ดิสก์ที่มีปัญหา ดิสก์ก้อนนี้จะถูกตั้งให้เป็น spare แทน จะไม่มีการ re-build เพื่อรวมดิสก์ที่เพิ่งเปลี่ยนเข้าไปใหม่</p>
<pre>[root@test-raid ~]# <strong>mdadm /dev/md0 --remove /dev/sdd1</strong>
mdadm: hot removed /dev/sdd1

[root@test-raid ~]# <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sde1[2] sdc1[1] sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

unused devices: &lt;none&gt;

[root@test-raid ~]# <strong>mdadm /dev/md0 --add /dev/sdd1</strong>
mdadm: added /dev/sdd1

[root@test-raid ~]# <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[3](S) sde1[2] sdc1[1] sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

unused devices: &lt;none&gt;

<strong>การคอนฟิกดิสก์ spare ตอนเริ่มต้นสร้าง RAID-5</strong>
ถ้าต้องการคอนฟิกดิสก์ spare ตั้งแต่เริ่มต้นสร้าง RAID สามารถทำได้ โดยเพิ่ม option ลงไปดังนี้

ตัวอย่างการสร้าง RAID-5 พร้อมดิสก์ spare
<pre>[root@test-raid ~]# <strong>mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1  /dev/sde1</strong>
[root@test-raid ~]# <strong>cat /proc/mdstat</strong>
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
      1975680 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
      [&gt;....................]  recovery =  2.4% (24836/987840) finish=1.2min speed=12418K/sec

unused devices: &lt;none&gt;</pre>
</pre>
<p><strong>ข้อมูลอ้างอิง</strong></p>
<ul>
<li><a href="http://spalinux.com/2008/08/creating_software_raid_on_linux">การสร้าง Software RAID บนลินุกซ์ </a></li>
<li><a href="http://linux-raid.osdl.org" target="_blank">Linux Raid</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/08/troubleshooting_software_raid_on_linux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

