iscsi stuff, first draft
authorPeter Palfrader <peter@palfrader.org>
Sat, 6 Jun 2009 12:49:56 +0000 (14:49 +0200)
committerPeter Palfrader <peter@palfrader.org>
Sat, 6 Jun 2009 12:49:56 +0000 (14:49 +0200)
input/howto/iscsi.creole [new file with mode: 0644]
input/index.mdwn

diff --git a/input/howto/iscsi.creole b/input/howto/iscsi.creole
new file mode 100644 (file)
index 0000000..fff90f4
--- /dev/null
@@ -0,0 +1,195 @@
+== Setup a new iscsi initiator ==
+
+giustini is our storage, i.e. the target in iscsi terminology.
+The initiator, i.e. the machine that wants to access iscsi
+block devices, we will simply call host.
+
+=== host preparations ===
+
+* On the host install open-iscsi
+{{{
+    apt-get install open-iscsi
+}}}
+
+* Then run discovery once so that giustini knows it already.  Saves
+some copy/pasting later on:
+{{{
+    iscsiadm -m discovery -t st -p 10.0.0.17
+}}}
+
+* You should now see two lines in the output of
+{{{
+    iscsiadm -m node
+}}}
+corresponding to the two addresses that controller A has:
+{{{
+       dijkstra:~# iscsiadm -m node
+       10.0.0.17:3260,1 iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda.a
+       10.0.0.18:3260,2 iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda.a
+}}}
+
+=== Meanwhile on Melee Islan^W^WGiustini ===
+
+* Log into the web config interface (see dsa-passwords for details)
+* Go to **Manage** -> **General Config** -> **Manage Host List** and give
+  the new host a nice nickname (i.e. its name).  If you did the
+  discovery above it should already be listed in the global host
+  list and you just need to set its name.  Else you would also need to
+  manually set the host's iqn (iscsi qualifiled name) which you can
+  find on the host in {{{/etc/iscsi/initiatorname.iscsi}}}.
+* Go to **Manage** -> **General Config** -> **Manage CHAP** to add a new
+  entry for the new host.  Pick the correct node name, and set a
+  secret for it (N.B.: the maximum is 15, not 16 chars - 
+  the interface and documentation lies).  Also setup mutual chap:
+  As name use giustini's base iqn {{{iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda}}}
+  and again pick a secret (same constraints as above).
+* Go to **Manage** -> **Volume Management** -> **volume menu** -> **add volume** to add
+  a new volume.  Choose volume size and name as you wish (our policy for name
+  appears to be "//&lt;targethost&gt;//-//&lt;mountpoint or purpose&gt;//.
+  Leave LUN empty (i.e. NONE).
+* Go to **Manage** -> **Volume Management** -> **volume mapping** and map the
+  new volume to a free LUN on the new host.
+
+=== Back on the host ===
+
+* edit /etc/iscsi/iscsid.conf:
+** set {{{node.session.auth.authmethod = CHAP}}}
+** set {{{node.session.auth.username}}} to own initiatorname (again, see {{{/etc/iscsi/initiatorname.iscsi}}})
+** set {{{node.session.auth.password}}}
+** set {{{node.session.auth.username_in = iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda}}}
+** set {{{node.session.auth.password_in}}}
+
+* stop and start iscsi:
+{{{
+       /etc/init.d/open-iscsi stop &&
+       sleep 3 &&
+       (cd / && env -i /etc/init.d/open-iscsi start)
+}}}
+
+* not sure if this is necessary again:
+{{{
+       iscsiadm -m discovery -t st -p 10.0.0.17
+}}}
+
+* and just for fun, run this again.
+{{{
+       iscsiadm -m node
+}}}
+The output should be the same as above:
+{{{
+       dijkstra:~# iscsiadm -m node
+       10.0.0.17:3260,1 iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda.a
+       10.0.0.18:3260,2 iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda.a
+}}}
+
+* moment of truth.  Login:
+{{{
+       iscsiadm -m node --targetname "iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda.a" --login
+}}}
+
+* cat /proc/scsi/scsi, dmsg, the logs should show it having detected new block devices as sdX.
+  You should have gotten each volume twice (once via .17 and once via .18).
+* more pretty status stuff, if you care:
+{{{
+dijkstra:~# iscsiadm -m session -P 1
+Target: iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda.a
+        Current Portal: 10.0.0.17:3260,1
+        Persistent Portal: 10.0.0.17:3260,1
+                **********
+                Interface:
+                **********
+                Iface Name: default
+                Iface Transport: tcp
+                Iface Initiatorname: iqn.1993-08.org.debian:01:dea714656496
+                Iface IPaddress: 10.0.0.218
+                Iface HWaddress: default
+                Iface Netdev: default
+                SID: 1
+                iSCSI Connection State: LOGGED IN
+                iSCSI Session State: LOGGED_IN
+                Internal iscsid Session State: NO CHANGE
+        Current Portal: 10.0.0.18:3260,2
+        Persistent Portal: 10.0.0.18:3260,2
+                **********
+                Interface:
+                **********
+                Iface Name: default
+                Iface Transport: tcp
+                Iface Initiatorname: iqn.1993-08.org.debian:01:dea714656496
+                Iface IPaddress: 10.0.0.218
+                Iface HWaddress: default
+                Iface Netdev: default
+                SID: 2
+                iSCSI Connection State: LOGGED IN
+                iSCSI Session State: LOGGED_IN
+                Internal iscsid Session State: NO CHANGE
+
+}}}
+
+* next, install and configure multipath-tools
+{{{
+cat > /etc/multipath.conf << EOF
+defaults {
+        udev_dir                /dev
+        polling_interval        10
+        selector                "round-robin 0"
+        path_grouping_policy    multibus
+        getuid_callout          "/lib/udev/scsi_id -g -u -s /block/%n"
+        prio_callout            /bin/true
+        path_checker            readsector0
+        rr_min_io               100
+        rr_weight               priorities
+        failback                immediate
+        no_path_retry           fail
+        user_friendly_name      yes
+}
+blacklist {
+        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
+        devnode "^hd[a-z][[0-9]*]"
+        devnode "^vd[a-z]"
+        devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
+        device {
+                vendor DEC.*
+                product MSA[15]00
+        }
+}
+multipaths {
+        multipath {
+                wwid 3600c0ff000d5f6bde2d4cf4901000000
+                alias geo2-boot
+        }
+}
+EOF
+
+apt-get install multipath-tools
+}}}
+
+* look at the topology
+{{{
+       echo show topology | multipathd -k
+}}}
+
+* for the wwid thing in there create an entry in multipath.conf with a proper name, then reload multipathd
+{{{
+       vi /etc/multipath.conf
+       /etc/init.d/multipath-tools reload
+       echo show topology | multipathd -k
+       ls -l /dev/mapper
+}}}
+
+* If you are happy with what you have, change node.startup to automatic in iscsid.conf
+{{{
+       vi /etc/iscsi/iscsid.conf
+}}}
+
+* see if it works out of the box after a reboot.
+
+
+=== misc ===
+
+* misc commands:
+{{{
+  iscsiadm -m node --targetname "iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda.a" --rescan
+  iscsiadm -m node --targetname "iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda.a" --login
+  iscsiadm -m node --targetname "iqn.1986-03.com.hp:storage.msa2012i.0834d5ecda.a" --logout
+}}}
index e3d85b5..56ddce6 100644 (file)
@@ -31,7 +31,8 @@ VCS repositories for ud-ldap and all our other stuff can be found at
 * [[howto/ilo-https]]
 * [[howto/backup]]
 * [[howto/exim-ca]]
-* [[howto/export-iscsi]]: How to export new iscsi LUNs 
+* [[howto/iscsi]]: How to setup a new iscsi initiator
+* [[howto/export-iscsi]]: How to export new iscsi LUNs
 * [[howto/install-kvm]]: How to setup a new kvm domain without going through d-i etc.
 
 ## misc