Chapter 3. Resource Providing Hosts

Resource providing hosts provide computational resources like CPU cycles, memory, or disk space to clients. Resource owners must prepare their hosts by installing and configuring an auctioneer on each providing host.

If you have not already done so, follow the directions in the Tycoon User's Manual to create a Tycoon bank account. This will be the account owns the providing hosts. Funds earned by the hosts will be deposited in the owner account.

3.1. Installing and Configuring an Auctioneer Manually

The auctioneer controls how resources on a host are allocated. This section describes how to administer a single auctioneer running on a local machine. If you need to administer multiple auctioneers remotely, see Section 3.2, “Installing and configuring Auctioneers Automatically”.

  1. Use yum to download and install the Tycoon auctioneer RPMs. This will also download and install a virtualization system, if one is not already installed on the system. By default, Tycoon uses the Xen hypervisor. Run the following command:

    [root@providinghost0 ~]# yum -y -c http://tycoon.hpl.hp.com/~tycoon/dl/yum/tycoon.repo install tycoon_aucd_xen3
    

    You should see something like:

    
    Setting up Install Process
    Setting up Repos
    .
    .
    .
    Installed: tycoon_aucd_xen3.noarch 0:0.3.0p27-1
    Dependency Updated: KL.noarch 0:0.3.0p8-1 tycoon.noarch 0:0.3.0p27-1
    Complete!
    
    
    [Note]Note

    Use this same command to download and install a newer version of the auctioneer.

    The installation process configures the auctioneer to be started automatically when the machine is booted. In addition, its log file will be periodically rotated.

  2. The Xen RPM currently does not correctly update the GRUB configuration in /boot/grub/grub.conf. You must do this manually.

    
    default=1
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title Fedora Core (2.6.14-1.1656_FC4)
            root (hd0,0)
            kernel /vmlinuz-2.6.14-1.1656_FC4 ro root=/dev/VolGroup00/LogVol00
            initrd /initrd-2.6.14-1.1656_FC4.img
    
    title Xen 3.0_7.1 
            root (hd0,0)
            kernel /xen-3.0.0.gz
            module /vmlinuz-2.6.12.6-xen3_7.1_fc4 ro root=/dev/VolGroup00/LogVol00
            module /initrd-2.6.12.6-xen3_7.1_fc4.img
    
    

    Example 3.1. Setting the correct grub.conf file for Xen.

    Be sure that the default parameter specifies the Xen entry. The entries are numbered starting with 0.

    The exact correct contents of this file will vary depending on the configuration of the providing host. If the host does not have a /boot partition, then the xen-3.0.0.gz, vmlinuz-2.6.12.6-xen3_7.1_fc4, and initrd-2.6.12.6-xen3_7.1_fc4.img files must be specified as their full path names (e.g., /boot/xen-3.0.0.gz). If the host is not using LVM, then the root should name the physical root filesystem partition (e.g., /dev/hda2).

    [Caution]Caution

    The wrong grub.conf could prevent the machine from booting properly. To correct this, manually edit the boot parameters using the grub commandline.

  3. Finish the Xen installation:

    
    
    iptables -A INPUT -s \! 127.0.0.1 -p tcp --dport 8001:8002 -j REJECT
    iptables -A INPUT -s \! 127.0.0.1 -p tcp --dport 9601:9699 -j REJECT
    service iptables save
    
    echo 1 > /proc/sys/net/ipv4/ip_forward 
    
    
    
  4. Reboot the host to activate the Xen kernel.

  5. Verify that the Xen kernel is running. Run the following command:

    [root@providinghost0 ~]# uname -a
    

    You should see something like:

    
    Linux providinghost0.hpl.hp.com 2.6.12.6-xen3_7.1_fc4 #1 SMP Tue Dec 13 16:33:43 PST 2005 i686 i686 i386 GNU/Linux
    
    
  6. If you are using the standard bank and SLS, then skip to step 8. Otherwise, you must manually configure /etc/tycoon/tycoon.conf. Set the SLSHostName and BankHostName fields as appropriate.

  7. If you are using the standard bank, then skip to the next step. Otherwise, copy the bank's public key to /etc/tycoon/bank_public_key. This key is provided by the bank's administrator and was created during the configuration of the bank. This key is used to authenticate communications with the bank.

  8. Copy the owner's bank account key pair to /etc/tycoon. This is the key pair obtained when the owner created her Tycoon bank account. These keys should be named OwnerAccountName_bank_private_key and OwnerAccountName_bank_public_key for the private and public key files, respectively, where OwnerAccountName is the name of the owner's account. For example, if Alice's bank account name is alice.smith@hp.com, then the key file names would be alice.smith@hp.com_bank_private_key and alice.smith@hp.com_bank_public_key. These keys are used by the auctioneer to make deposits into and withdrawls from the owner's bank account.

  9. Copy the owner's public key to /etc/tycoon/admin_public_key. In almost all cases, this is the same as /etc/tycoon/OwnerAccountName_bank_public_key. This key is used to authenticate remote administrative commands to the auctioneer.

  10. To set the auctioneer's owner, change the UserName option in /etc/tycoon/tycoon_aucd.conf.

    
    # The name of the user who owns the resources of this auctioneer
    UserName = "alice.smith@hp.com"
    
    

    Example 3.2. Setting the auctioneer's owner.

  11. Make sure that the auctioneer can traverse any host and network firewalls that are in place. The auctioneer makes outgoing TCP connections on ports 25955 and 8899, and accepts incoming TCP connections on port 24571. To traverse a host firewall, use iptables to open the appropriate ports. To traverse a network firewall, you can either open the appropriate outgoing ports or use a proxy.

    To configure an HTTP proxy, change the HTTPProxy option in /etc/tycoon/tycoon.conf to be the url of the HTTP proxy.

    
    # The HTTP proxy to use for communications with the SLS, bank, and auctioneers.
    # Using None means pick up the proxy from the environment variable http_proxy.
    # Using "" means do not use a proxy.
    HTTPProxy = "http://proxy.hpl.hp.com:8088"
    
    

    Example 3.3. Using the HTTPProxy option in tycoon.conf to set an explicit HTTP proxy

  12. Start up the auctioneer:

    [root@providinghost0 ~]# service tycoon_aucd start
    

    You should see something like:

    
    Starting Tycoon Auctioneer:                  [  OK  ]