January 30, 200818 yr Hi All, I have been reading these forums and the ones over in AVS, but I am still a little stuck!! First of all I was trying Freenas and got that working well, but wasn't too sure of it's reliabilty and then I came accross unraid and it seems to be a great product. I am currently testing it out using the freeversion and will buy the pro if I can work out these few problems I am having. I am completely new to both linux and unraid. I have 3 500GB sata II drives. They are attached to an DFI lanparty nforce 4 motherboard, 2GB ram and I am using the marvel yukon gigabit onboard lan. First issues, how do I copy config or system files from the server to the USB disk? like I was trying to copy smb.conf to my flash drive to edit it by using the command "cp /etc/samba/smb.conf /boot/smb.conf" it gives an error about not been able to create file name /boot/smb.conf and input/output error. These leads to my second issue, when I make changes in the smb.conf, they are gone when I reboot, how do I make them stick? The same with changing mtu values or network speeds on eth0, these changes are gone when I reboot. Can anyone please help me make these changes stick. Third: My smb.conf seems to be different than some of the ones I have been looking at here. Here is mine # configurable identification include = /etc/samba/smb.names # log stuff only to syslog log level = 0 syslog = 0 syslog only = Yes # we don't do printers show add printer wizard = No disable spoolss = Yes load printers = No printing = bsd printcap name = /dev/null # misc. host msdfs = Yes msdfs root = Yes unix extensions = No use sendfile = Yes # auto-configured shares include = /etc/samba/smb.shares That's it, there are no socket options or anything like that. And this is my GO file #!/bin/bash # Start the Management Utility /usr/local/sbin/emhttp & sleep 30 for i in /dev/md* do blockdev --setra 2048 $i done Is this ok? Lastly, is something everyone complains about but the speed. When I installed freenas I was able to copy files from my Vista system to the freenas share (softraid5) at 30-50MB/s. I did this by putting turning off auto negotation on both cards and also by setting the send and receive buffers to 66535. I am only getting around 12-16MB/s on the unraid system, but I don't really know how to tweak things yet on unraid. I was trying to use this command in the smb.conf socket options = TCP_NODELAY SO_KEEPALIVE SO_RCVBUF=66535 SO_SNDBUF=65535 But as I said it doesn't stick when I reboot, I don't even know if it is needed. Anyway, thanks for anyone who can help me out, and if you can't thanks for reading!!
January 30, 200818 yr Just a couple of steps on your path to knowledge, other more knowledgeable Linux users will add more complete info I'm sure: First thing to know is that unRAID builds and installs itself to a ramdisk, which explains why it is lost every time you reboot. Nothing is on disk except a few config files and bzroot and bzimage. There is not even a swap partition on disk. There are threads elsewhere of a few users building a Slackware environment with unRAID support, and building a customized unRAID system, with a regular swap partition. Second, you should have no problem copying files to the flash drive, we do it all the time. I just tried your cp command, without a problem. And lastly, we will be watching with interest your speed optimization experiments with socket options.
January 31, 200818 yr You will not get better than 12-16MB/s on writes to unRAID because of the parity read/modify/write that needs to take place on - this is similar to RAID-5 "small write penalty". We are working on a new feature that will at least double this. As for other Samba options- TCP_NODELAY is already set by default SO_RCVBUF and SO_SNDBUF - are set to OS default (I think 128K). I've never seen any performance increase by explicitly setting these values SO_KEEPALIVE - ok maybe you want this, but I've always found it unnecessary. To add changes to the Samba config file, the proper way to do it is via echo commands in the 'go' file BEFORE emhttp is started, as in: echo "SO_KEEPALIVE=Yes" >>/etc/samba/smb.conf You can experiment after the server is up by directly editing /etc/samba/smb.conf (using vi) and then type the command: samba restart You can see all the Samba options in all their glory by typing: testparm -sv
January 31, 200818 yr You will not get better than 12-16MB/s on writes to unRAID because of the parity read/modify/write that needs to take place on - this is similar to RAID-5 "small write penalty". We are working on a new feature that will at least double this. Hopefully the new feature isn't doubling the "small write penalty". Seriously, my curiosity is piqued. Bill
January 31, 200818 yr You will not get better than 12-16MB/s on writes to unRAID because of the parity read/modify/write that needs to take place on - this is similar to RAID-5 "small write penalty". We are working on a new feature that will at least double this. Hopefully the new feature isn't doubling the "small write penalty". Obviously, the doubling would then be similar to RAID-10 "small write penalty" ;)
January 31, 200818 yr Author Thanks very much for your replies. So I put this line echo "SO_KEEPALIVE=Yes" >>/etc/samba/smb.conf Before this line in my GO file? /usr/local/sbin/emhttp & What about the ethernet card? where do I put this line? ifconfig eth0 mtu 9000 and ethtool eth0 -s speed 1000 mbs DUPLEX FULL autoneg off I was getting a write speed of 30-40MB/s on the freenas and it was configured as a software raid 5. But the write speed isn't a huge issue, to me the read speed is much more important. I will be streaming HD movies so it's important that they don't stutter etc. Is there any tweaks out there for improving that? I used the one with the blockdev seta 2048. Is there any others? I am only getting about 30MB/s read speed. There seems to be some sort of bottleneck, but I can't figure out where it is. It's the exact same hardware that I am using with unraid as I used when testing freenas and freenas was giving me read speeds around 60MB/s. Unraid is fine for streaming when there is nothing else happening, but, if the other computer is been used and they copy up anything then the movie stutters like mad, even if they only copy up at 7MB/s. The other computer has only a 100Mb card. So there should be plenty of bandwidth to stream a HD movie which only uses about 8MB/s. Is is because when you are copying stuff it has to write to the parity drive? I have noticed when I am copying stuff that the it's not a sustained transfer, but jumps between a few KB/s to 15 or 16MB/s. IS there anyway to turn off flow control? or is it off already? Again, sorry for my ignorance, I am completely new to this and am just trying to build up my understanding. Thanks for the testparm command.
January 31, 200818 yr Thanks very much for your replies. So I put this line echo "SO_KEEPALIVE=Yes" >>/etc/samba/smb.conf Before this line in my GO file? /usr/local/sbin/emhttp & Yes. I think you will also need to ask the smbd to re-read the config file as it is already started before the "go" script is even invoked. You should be able to do that by putting the following line just after your line that adds SO_KEEPALIVE smbcontrol smbd reload-config What about the ethernet card? where do I put this line? ifconfig eth0 mtu 9000 and ethtool eth0 -s speed 1000 mbs DUPLEX FULL autoneg off You can probably put them anywhere in the "go" script. I have noticed when I am copying stuff that the it's not a sustained transfer, but jumps between a few KB/s to 15 or 16MB/s. IS there anyway to turn off flow control? or is it off already? Lots of people have seen the same behavior... from my own investigation it almost seems as if writes have priority over reads. I have also seen that it appears as if there is a flow control issue of some kind between the network driver and the pdflush thread/process launched by the kernel. I experimented a bit with setting the pdflush to a lower priority this in this thread: http://lime-technology.com/forum/index.php?topic=1119.0 but the pdflush processes are constantly re-created and the new ones spawned have the original nice value. To me, they should be background processes and at a lower priority. Instead, they seem to be higher in priority than the network driver. Again, sorry for my ignorance, I am completely new to this and am just trying to build up my understanding. Thanks for the testparm command. Welcome to the group... we are all trying to understand... (and get improved performance) Now, don't get me wrong, my unraid server is doing fine, and plenty fast enough for most of how I use it, but I seldom have simultaneous reads/writes and do not have any HD content streams. Joe L.
January 31, 200818 yr Author Thanks Joe, interesting read there on that link you sent me on. Most of it went way over my head lol. But I think I basically understand the problem. IT seems to be that the network stops when it writes to the parity drive because of some process getting higher priority over others. And don't get me wrong either lol, I am very happy with the Unraid system and it seems to very stable and the ability to add drives makes a it a winner for me. My only concern is that streaming HD. I am going to test it later and see how it streams to two PC's or Maybe copy a file to one PC and stream HD to the other. The write speeds, while slow, are something that I can live with as I can just copy stuff up over night. I really would like to learn some more about the command and folder structure etc in the unraid. Is there a list of commands etc. anywhere? or is it just go out and learn linux lol.
January 31, 200818 yr For the most part unRaid has the same set of basic commands available on just about any Linux OS. unRaid has left out a few of the commands that were not needed for it to function that are available on a full linux installation. For example, there is no ftp server, but there is an ftp client. There is no graphical interface on the console, it is text only. It has no printer spoooler process, etc. Google is your friend there to find out what commands are available. search for "man samba" or "man ifconfig" or "man bash" and you will have tons to read. "man" is the built in manual page system in many linux distributions... (also left out of unRaid so it will fit in a small flash drive.) Fortunately, it is easy to find the same content using google. You basically understand the problem. The "pdflush" processes are spawned by the OS to write blocks of data that are in the disk buffer cache to the physical disks. They should start their work when the disk buffer cache has any block waiting to be written to the physical disk, and work until the cache is empty. Apparently, when pdflush is in the process of writing to a physical disk they take priority over the network IO tasks and the network task stops. I don't know in the process that causes this... it could be lock contention of some kind on some resource needed by both processes, or something else. In my opinion pdflush processes should not take priority, they should work in the background writing to the disks. Only if the disk cache is full and the network task is unable to write should it block. (the "write" call is blocked waiting on a resource (disk buffer) to be freed up after writing to the physical disk by pdflush.) So, it is not writes to the parity drive, but writes to any drive, that is the issue. If you do not have a parity drive defined than only one disk needs to be written to instead of two, so you see less blocking of the network data. I've been able to stream 4 separate DVD ISO images to different clients on my LAN while reconstructing data on a simulated failed drive. I've not tried any HD streams, but odds are you will be fine. Joe L.
Archived
This topic is now archived and is closed to further replies.