iSCSI on CentOS/RHEL5, Fedora7, Debian/Ubuntu

November 17th, 2009

Internet SCSI (iSCSI) is a network protocol s that allows you to use of the SCSI protocol over TCP/IP networks. It is good alternative to Fibre Channel-based SANs. You can easily manage, mount and format iSCSI Volume under Linux. It allows access to SAN storage over Ethernet.

Open-iSCSI Project

 

Open-iSCSI project is a high-performance, transport independent, multi-platform implementation of iSCSI. Open-iSCSI is partitioned into user and kernel parts.

 

Instructions are tested on:

[a] RHEL 5

[b] CentOS 5

[c] Fedora 7

[d] Debian / Ubuntu Linux

Install Required Package

 

iscsi-initiator-utils RPM package – The iscsi package provides the server daemon for the iSCSI protocol, as well as the utility programs used to manage it. iSCSI is a protocol for distributed disk access using SCSI commands sent over Internet Protocol networks. This package is available under Redhat Enterprise Linux / CentOS / Fedora Linux and can be installed using yum command:

# yum install iscsi-initiator-utils

A note about Debian / Ubuntu Linux

 

If you are using Debian / Ubuntu Linux install open-iscsi package, enter:

$ sudo apt-get install open-iscsi

iSCSI Configuration

 

There are three steps needed to set up a system to use iSCSI storage:

iSCSI startup using the init script or manual startup. You need to edit and configure iSCSI via /etc/iscsi/iscsid.conf file

Discover targets.

Automate target logins for future system reboots.

You also need to obtain iSCSI username, password and storage server IP address (target host)

Step # 1: Configure iSCSI

 

Open /etc/iscsi/iscsid.conf with vi text editor:

# vi /etc/iscsi/iscsid.conf

 

Setup username and password:

node.session.auth.username = My_ISCSI_USR_NAME

node.session.auth.password = MyPassword

discovery.sendtargets.auth.username = My_ISCSI_USR_NAME

discovery.sendtargets.auth.password = MyPassword

 

Where,

node.session.* is used to set a CHAP username and password for initiator authentication by the target(s).

discovery.sendtargets.* is used to set a discovery session CHAP username and password for the initiator authentication by the target(s)

 

You may also need to tweak and set other options. Refer to man page for more information. Now start the iscsi service:

# /etc/init.d/iscsi start

Step # 2: Discover targets

 

Now use iscsiadm command, which is a command-line tool allowing discovery and login to iSCSI targets, as well as access and management of the open-iscsi database. If your storage server IP address is 192.168.1.5, enter:

# iscsiadm -m discovery -t sendtargets -p 192.168.1.5

# /etc/init.d/iscsi restart

 

Now there should be a block device under /dev directory. To obtain new device name, type:

# fdisk -l

 

or

# tail -f /var/log/messages

 

Output:

Oct 10 12:42:20 ora9is2 kernel:   Vendor: EQLOGIC   Model: 100E-00           Rev: 3.2

Oct 10 12:42:20 ora9is2 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 05

Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: 41963520 512-byte hdwr sectors (21485 MB)

Oct 10 12:42:20 ora9is2 kernel: sdd: Write Protect is off

Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: drive cache: write through

Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: 41963520 512-byte hdwr sectors (21485 MB)

Oct 10 12:42:20 ora9is2 kernel: sdd: Write Protect is off

Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: drive cache: write through

Oct 10 12:42:20 ora9is2 kernel:  sdd: unknown partition table

Oct 10 12:42:20 ora9is2 kernel: sd 3:0:0:0: Attached scsi disk sdd

Oct 10 12:42:20 ora9is2 kernel: sd 3:0:0:0: Attached scsi generic sg3 type 0

Oct 10 12:42:20 ora9is2 kernel: rtc: lost some interrupts at 2048Hz.

Oct 10 12:42:20 ora9is2 iscsid: connection0:0 is operational now

 

/dev/sdd is my new block device.

Step # 3: Format and Mount iSCSI Volume

 

You can now partition and create a filesystem on the target using usual fdisk and mkfs.ext3 commands:

# fdisk /dev/sdd

# mke2fs -j -m 0 -O dir_index /dev/sdd1

 

OR

# mkfs.ext3 /dev/sdd1

 

Tip: If your volume is large size like 1TB, run mkfs.ext3 in background using nohup:

# nohup mkfs.ext3 /dev/sdd1 &

 

Mount new partition:

# mkdir /mnt/iscsi

# mount /dev/sdd1 /mnt/iscsi

Step #4: Mount iSCSI drive automatically at boot time

 

First make sure iscsi service turned on at boot time:

# chkconfig iscsi on

 

Open /etc/fstab file and append config directive:

/dev/sdd1 /mnt/iscsi ext3 _netdev 0 0

 

Save and close the file.

VMWare Server on CentOS 5

November 17th, 2009

I make no warranties tha this works as dont think I ever got round to testing it!!!!

See previous post for minimal CentOS install

http://www.cloudinfotec.co.uk/blog/?p=7

Yum update

yum -y install libX11-devel libXtst

yum -y install gcc

yum -y install kernel-headers kernel-devel

 

http://www.mokonamodoki.com/vmware-server-on-centos-5

http://fosswire.com/2007/04/21/installing-vmware-server-on-centos-5/

http://download3.vmware.com/software/vi/VMware-esx-public-source-3.5.0-61973.tar.gz

CentOS minimal install

November 17th, 2009

Pulled together from various sources, credit given where I have the original URLs….If you recognise your own words and I haven’t credited you, appologies. Mail me and i will correct it!

http://www.pervasivecode.com/blog/2008/03/29/centos-51-minimal-vps-install-guide/

http://anchorite.org/blog/2006/11/13/minimal-services-on-centos-44-mini-howto/

Useful link for Red Hat Services:

http://www.redhatmagazine.com/2007/03/09/understanding-your-red-hat-enterprise-linux-daemons/

Assumptions:

  • this server uses an x86_64 CPU architecture, not i386 (or for an ultra-small disk footprint, consider i386 since it doesn’t need duplicate 64 and 32 bit glibc libraries)
  • this is a server VPS (running in VMware or Xen) so it isn’t interested in low-level hardware management
    • no need for ACPI (sleep/hibernate)
    • no need for laptop CPU power reduction
    • no need for SMART disk monitoring (since the VPS disk is virtualized)
    • no need for MD (software RAID) since it’s a VPS; any RAID is happening at a lower level (host OS / dom0)
    • no need to use LVM2 to mirror a logical volume (again because RAID is handled outside of the VPS)
    • no need for bluetooth, hot-plug hardware, or PCMCIA
  • this server may have more than one CPU (or may be given additional VCPUs later due to load) so multi-CPU support is desired
  • this is a headless server so no GUI features are desirable
  • there are no legacy services that need RPC
  • NFS will not be used
  • SELinux will be left in the default configuration (”Enforcing” the “Targeted” policy).

Basic Installation:

Start with the Centos 5.1 x86_64 install DVD.
Boot the DVD.
Select English language and U.S. English keyboard layout.
Choose to Install the OS (not upgrade).
Choose “Remove linux partitions on selected drives and create default layout.”
Select DHCP network configuration, or the static IP address for this server.
(I choose DHCP, and tell the DHCP server to use a specific IP for this host based on its Ethernet MAC address.)
Choose the time zone the server is in (for me this is America/Los Angeles), and enable the “System clock uses UTC” option.
Pick a complex root password (https://grc.com/passwords can generate one for you) and enter it.
When given a chance to install additional tasks, uncheck everything (no additional tasks) and choose the “Customize now” radio button.
In the next screen, go into every group and uncheck everything. (*Nothing* should be checked when you’re done. Be careful not to miss anything!)
Confirm that you want the installer to begin the installation process. (For me this process took about 6 minutes.)
Confirm that you want to reboot, and make sure that the server will boot from the hard disk instead of the installation media.
When the server boots, log in as root. (You can disconnect from the console and use SSH instead at this point if it’s more convenient.)

More Minimizing:

Run this command to make sure you didn’t install anything other than the bare minimum:
yum -C grouplist
You shouldn’t see a section called “Installed Groups:”. If you do see it, it means you missed something you were supposed to disable in the previous section.
In that case, run this to remove it and all the packages in it:
yum -C groupremove SomeGroupName

You can also run this command to count how many packages have been installed already:
yum -C list installed | wc -l
The resulting count of packages installed should be 154.

Next, run “chkconfig –list | grep 3:on” to see what services are enabled.
Several of them can safely be disabled (provided that the assumptions at the top of this guide are true), so run this:
for i in acpid atd autofs cpuspeed cups gpm isdn mdmonitor messagebus netfs nfslock openibd pcmcia portmap rawdevice rpcgssd rpcidmapd haldaemon lvm2-monitor ; do chkconfig $i off; done

(may not have all of these service running, as some of this is ripped from a CentOS 4 minimal install)
These are useful and should stay enabled:
ip6tables (if not running ipv6 this can go too)
iptables
kudzu
mcstrans
network
restorecond
sshd
syslog
If for some reason there are others that are still enabled that aren’t on that list, you’ll have to decide for yourself.

Run this command to remove a 9.7MB standalone documentation package that you almost certainly won’t be reading from the server:
yum -C remove Deployment_Guide-en-US

If you wish, run this command to update your installed packages to the latest stable version.
yum update
As of 3/27/2008 this installed a new kernel, updated 19 other packages, and required a 54MB download.
Accept the CentOS package-signing GPG key when asked.
If a kernel update is installed, it would be a good idea to reboot soon to make sure it works.
You can also remove your old kernel (use “rpm -qa | grep kern” to find old ones) to save ~75MB.
yum remove kernel-2.6.xx-xx.el5 NOTE! ONLY do this if you updated your kernel and have 2 installed now.

Useful Things You May Want To Install:

These packages are very useful for administering servers, deploying software and data to them, and performing backups:
yum install bzip2 lsof man man-pages mlocate quota rsync sysstat vixie-cron wget which

If your server has more than 1 CPU you may wish to install irqbalance, to distribute interrupt servicing duty across CPUs:
yum install irqbalance

This package makes the system boot slightly faster using a very simple, safe technique:
yum install readahead

If you aren’t familiar with the vim text editor, you can install nano, which is less powerful but very easy to use:
yum install nano

Hopefully…something useful….

November 17th, 2009

New to all this blogging stuff, but just looking to have somewhere online that can to store handy tips, links and stuff that Ican use on day to day basis, either at work or at home….I make no warranties as to whether they will work for you, if they are complete postings (probably not as they will mostly be snipettes of info for my own reference)

USE AT YOUR OWN RISK

Cheers

Dongers