Results 1 to 2 of 2

Thread: Bottlenecking ISCSI, Apache Setup - HELP!

Threaded View

  1. #1
    Join Date
    Dec 2008
    Beans
    3

    Question Bottlenecking ISCSI, Apache Setup - HELP!

    Hey guys,

    Bare with me as I've been on and off using Linux/BSD the past few years and don't have a full grip on things yet...

    So here's my situation:

    I've got a box running Ubuntu Server 8.10 that I've been trying to setup as an ISCSI Initiator to connect to a 14TB SAN (target) I have via direct ethernet. This box (the ubuntu server) has two ethernet cards so one line goes out to the public internet and the other to the SAN (as I mentioned).

    I've had quite a few problems getting up and running, some due to my ignorance but have ironed out most of everything except:

    1.) My main gripe is that when I perform a 'sudo reboot' to restart the server, it never actually restarts. I get disconnected from my SSH session and am unable to reconnect, or access the web interface (apache) or connect remotely in any way -- but the server never reboots. I have to remotely pull the power to it and plug it back in, then I'm able to get it to boot up again. This happens everytime!

    2.) Sparing the details of the setup, I've been able to get the Ubuntu box to act as an intitiator (open-iscsi, the version that apt-get gave me) and get it to connect to the target san, however when I first attempted to mount the san (/dev/sdb2) to my own folder (/san) I got an error about the drive being in use (or something to that effect) and was given an option to force mount (-o force) -- and by doing so I was able to mount, but not without forcing.

    3.) Once everything is mounted, and working (maybe not properly, but can access SAN from /san) if I restart the server the SAN is not auto-mounted (even though I've set it to be an automatic startup in the config) and I have to reset the open-iscsi service when I log back into SSH and then it finds it again, however I end up having to remount AGAIN (-o force, again) after resetting the open-iscsi service.

    4.) When doing '/etc/init.d/open-iscsi status' I get this output when everything is mounted and "seemingly" working:

    Code:
    Current active iSCSI sessions:
    iscsiadm: Could not get host for sid 1.
    iscsiadm: could not get host_no for session 6.
    iscsiadm: could not find session info for session1
    iscsiadm: Can not get list of active sessions (6)
    5.) I'm running apache2 to allow public access to files on the SAN. I have an alias in the server config to go from http://server/san to /san on the computer. This of course, works regardless of all these other issues I'm having. The issue here (and I don't know if this is apache related) is that I can't seem to withstand more than 100mb throughput or as in apache's server-status page, 250-300 connections, because then it gets more difficult to access files. My settings for apache2 prefork are:


    Code:
    <IfModule mpm_prefork_module>
        ServerLimit         500
        StartServers          5
        MinSpareServers       5
        MaxSpareServers      10
        MaxClients         2000
        MaxRequestsPerChild   0
    </IfModule>
    I don't know if these settings are optimal, but I think around 2000 maxclients is about what I need for this box, maybe a little less. I'm not sure if any of these other values are optimal, however. This machine currently only has 2GB of memory but will be upgraded to 4GB in a few days. I'm also serving only static content, not dynamic (with PHP or anything) currently.

    Both ethernet adapters are 10/100/1000 and I have checked that they are transmitting in 1000 full duplex already, but I'm still getting a bottleneck SOMEWHERE, either in ISCSI or Apache (my guess it's one of those)... after too many connections trying to download files is very slow. I have an HTML page that I test to make sure the connection to the SAN is still working and under very low load, that file refreshes instantly (as it should being a 1/2 KB .htm file). However, when I get too many connections (haven't hit maxclients setting in apache of course) -- I get a "connecting..." and "waiting..." status in my browser bar and then sometimes 1 second, sometimes 7 seconds later I finally get the HTML file.

    So something is bottlenecking. I have a similar setup on a Windows Server 2003 machine and it handles everything by itself right now (identical hardware, by the way) -- so I know the box is capable of handling this load. I'm also not running a firewall on the Ubuntu box right now. Hopefully someone has some helpful suggestions. I would much rather be moving over to Ubuntu versus Windows. I do plan to split the load between 2 or 3 boxes, but I need to get this first one working properly before I can do anything else.

    Any help is greatly appreciated!

    Here's the ISCSI settings:

    Code:
    winsys:raid.** --portal 192.**:3260
    node.name = iqn.**
    node.tpgt = 1
    node.startup = automatic
    iface.hwaddress = default
    iface.iscsi_ifacename = default
    iface.net_ifacename = default
    iface.transport_name = tcp
    node.discovery_address = 192.**
    node.discovery_port = 3260
    node.discovery_type = send_targets
    node.session.initial_cmdsn = 0
    node.session.initial_login_retry_max = 4
    node.session.cmds_max = 128
    node.session.queue_depth = 32
    node.session.auth.authmethod = None
    node.session.auth.username = <empty>
    node.session.auth.password = <empty>
    node.session.auth.username_in = <empty>
    node.session.auth.password_in = <empty>
    node.session.timeo.replacement_timeout = 120
    node.session.err_timeo.abort_timeout = 10
    node.session.err_timeo.reset_timeout = 30
    node.session.iscsi.InitialR2T = No
    node.session.iscsi.ImmediateData = Yes
    node.session.iscsi.FirstBurstLength = 262144
    node.session.iscsi.MaxBurstLength = 16776192
    node.session.iscsi.DefaultTime2Retain = 0
    node.session.iscsi.DefaultTime2Wait = 0
    node.session.iscsi.MaxConnections = 1
    node.session.iscsi.MaxOutstandingR2T = 1
    node.session.iscsi.ERL = 0
    node.conn[0].address = 192.**
    node.conn[0].port = 3260
    node.conn[0].startup = manual
    node.conn[0].tcp.window_size = 524288
    node.conn[0].tcp.type_of_service = 0
    node.conn[0].timeo.logout_timeout = 15
    node.conn[0].timeo.login_timeout = 15
    node.conn[0].timeo.auth_timeout = 45
    node.conn[0].timeo.active_timeout = 5
    node.conn[0].timeo.idle_timeout = 60
    node.conn[0].timeo.ping_timeout = 5
    node.conn[0].timeo.noop_out_interval = 10
    node.conn[0].timeo.noop_out_timeout = 15
    node.conn[0].iscsi.MaxRecvDataSegmentLength = 131072
    node.conn[0].iscsi.HeaderDigest = None,CRC32C
    node.conn[0].iscsi.DataDigest = None
    node.conn[0].iscsi.IFMarker = No
    node.conn[0].iscsi.OFMarker = No
    Last edited by Biker803; December 1st, 2008 at 10:54 PM.

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •