<div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">&nbsp;</blockquote>
<div>Dear all,</div>
<div>&nbsp;</div>
<div>Thanks for the greate explanation regaing Software/H/W Raid. This details better but on <a href="http://voip-info.org/wiki">voip-info.org/wiki</a> pages.</div>
<div>&nbsp;</div>
<div>Thanks lot agian.</div>
<div>Regs,</div>
<div>Vidura Senadeera.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>======================================</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Dear All,<br>&gt;<br>&gt; I would like to get community&#39;s feedback with regard to RAID1 ( Software or<br>
&gt; Hardware) implementations with asterisk.<br>&gt;<br>&gt; This is my setup<br>&gt;<br>&gt; Motherboard with SATA RAID1 support<br>&gt; CENT OS 4.4<br>&gt; Asterisk 1.2.19<br>&gt; Libpri/zaptel latest release<br>&gt; 2.8
 Ghz Intel processor<br>&gt; 2 80 GB SATA Hard disks<br>&gt; 256 MB RAM<br>&gt; digium PRI/E1 card<br>&gt;<br>&gt; Following are the concerns I am having<br>&gt;<br>&gt; I&#39;m planing to put this asterisk server in production enviorment which is
<br>&gt; having E1 connection to the asterisk server, approximately<br>&gt; 20 con-current calls, Music on hold, voice mail boxes.<br>&gt;<br>&gt; 1. If I use Software RAID, what would be the impact to my deployment?<br>&gt; ( problems that I have to face with regard to the call flow )
<br>&gt; 2. If I use Hardware based RAID 1, what would be the impact to the system?<br>&gt; 3. According to your practical experiance what is the ideal solution among<br>&gt; both options?<br><br>With my other hat on I build and maintain many servers with disk
<br>capacities ranging from 80GB to over 6TB... All using Linux software RAID.<br>I&#39;ve been using Linux s/w RAID for over 8 years now.<br><br>So with RAID-1 done in hardware, the impact to the system, CPU, etc.<br>should be no more (or less) than running a single SCSI or SATA drive. You
<br>write the data over the (PCI) bus once and the hardware takes care of<br>writing it to both drives behind your back. Similarly for reading (where<br>it might only read from one drive or from alternative drives) you only see
<br>one transaction over the PCI bus.<br><br>You do (sometimes) need the hardware RAID controller to be supported by<br>Linux and this is a weak area. Some controllers just look like a standard<br>drive, so they are transparent to the system, but then you need to use
<br>either the BIOS utilities to set it up in the first place, or (typically)<br>a Windows utility, although some controllers are now being supported by<br>Linux with user-land tools to manage and check the arrays.<br><br>
Doing it in software requires double the PCI bandwidth for writes, but the<br>same as a single drive or hardware controller for reads. AIUI, the current<br>software RAID-1 reads alternatively from the disks. So on writes. The
<br>overhead in terms of CPU power is minimal - write the same block twice,<br>and if the hardware is good, then both writes can be transfered over the<br>PCI bus rapidly, into the cache on the drives and the writes then take
<br>place in parallel, so performance wise, it&#39;s really no worse than single<br>drive (and it&#39;s important to note than it&#39;s no better than a single drive<br>on reads too, despite many threads on the linux-raid list suggesting
<br>otherwise!)<br><br>RAID-1 doesn&#39;t require parity calculations, so the software overhead<br>really is quite small (especially when you compare it to the relatively<br>huge times it takes to actually get the data to/from the disks)
<br><br>So things that are important: Make sure the hardware to each drive is as<br>independent as possible. Hard to do these days as there is probably only<br>one SATA controller chip on the motherboard. You also need to see what
<br>happens when a drive dies - is it going to crowbar the entire SATA chip<br>and block the other drive? Is the driver going to recognise it quickly<br>enough and so on. (Some early SATA drives weren&#39;t good at this)<br>
<br>And the &quot;usual&quot; - make sure all the hardware has it&#39;s own interrupts.<br><br>For the absolute maximun performance, (and minimum overheard) then you<br>need a motherboard with multiple PCI buses - put the disks on one bus, the
<br>PRI card on another.<br><br>If terms of disk b/w needed - if we&#39;re using g711, then it&#39;s 64KB/sec, and<br>20 calls streaming to voicemail is 1.3MB/sec. A single modern drive ought<br>to be able to sustain 60MB/sec read or writes, so there is plenty of
<br>overhead, as long as asterisk is relatively sensible about buffering disk<br>write/reads (which I think it is)<br><br>So I&#39;d say &quot;go for it&quot;, but do take the time, if possible to build a<br>custom kernel for your hardware, and at the BIOS level, turn off all
<br>drivers that you won&#39;t be using - eg. on-board sound, then 2nd network<br>port, USB (if you&#39;re not using it, don&#39;t enable it!) and so on, and make<br>sure you have a custom compiled kernel for your exact hardware
<br>requirements with no modules loaded other than the Zap/TDM, etc., ones.<br><br>And I&#39;d also say &quot;go for it&quot; because I have similarly specd. servers doing<br>similar tasks also running asterisk. I won&#39;t put a server in a remote data
<br>centre these days without it either booting off flash, or using at least<br>RAID-1.<br><br>Remember to put your swap on RAID-1 too.<br><br>Here is one of my servers in a similar setup to yours:<br><br>$ cat /proc/mdstat
<br>Personalities : [raid0] [raid1]<br>md1 : active raid1 hdc1[1] hda1[0]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;248896 blocks [2/2] [UU]<br><br>md2 : active raid1 hdc2[1] hda2[0]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;995904 blocks [2/2] [UU]<br><br>md3 : active raid1 hdc3[1] hda3[0]
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2000000 blocks [2/2] [UU]<br><br>md5 : active raid1 hdc5[1] hda5[0]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;38081984 blocks [2/2] [UU]<br><br>md6 : active raid1 hdc6[1] hda6[0]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;38708480 blocks [2/2] [UU]<br><br>unused devices: &lt;none&gt;
<br><br>$ df -h<br>Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size&nbsp;&nbsp;Used Avail Use% Mounted on<br>/dev/md1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;236M&nbsp;&nbsp; 38M&nbsp;&nbsp;186M&nbsp;&nbsp;17% /<br>tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 249M&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;249M&nbsp;&nbsp; 0% /dev/shm<br>/dev/md3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.9G&nbsp;&nbsp;1.2G&nbsp;&nbsp;643M&nbsp;&nbsp;65% /usr
<br>/dev/md5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 36G&nbsp;&nbsp; 29G&nbsp;&nbsp;5.3G&nbsp;&nbsp;85% /var<br>/dev/md6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 37G&nbsp;&nbsp; 30G&nbsp;&nbsp;4.7G&nbsp;&nbsp;87% /archive<br><br>$ cat /proc/swaps<br>Filename&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size&nbsp;&nbsp;&nbsp;&nbsp;Used<br>Priority<br>
/dev/md2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;partition&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 995896&nbsp;&nbsp;326712&nbsp;&nbsp;-1<br><br>It has 2 x 80GB IDE drives and I&#39;ve partitioned them (because that&#39;s my<br>preference), but one thing I do, is name the md (RAID) partitons after the
<br>partition names, so md1 is /dev/hda1 and /dev/hdb1 and so on. Makes life<br>easy if changing a drive.<br><br><br>Gordon<br>Ps. There appears to be asterisk version 1.2.24 now, although I must have<br>missed the announcements from Digium about it...
<br><br>Pps. Stick another 256MB of RAM in it if possible. It&#39;ll only cost pennies<br>and might help with buffering stuff like MoH - or even copy MoH, prompts,<br>etc. into a RAM disk at boot time...<br><br></blockquote>
</div>