ISCSI Raid and Clustered File Systems

From Alpine Linux
Revision as of 10:20, 17 November 2023 by Sertonix (talk | contribs) (replace /etc/init.d with rc-service)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
This material is obsolete ...

SCST is deprecated since Alpine 2.6 in favor of TCM and OCFS2 isn't available in Alpine 3.6 (Discuss)

This document describes how to created a raided file system that is exported to multiple host via ISCSI.

Raid Configuration

Very Similar to Setting up a software RAID array.

apk install mdadm
mdadm --create --level=5 --raid-devices=3 /dev/md0 /dev/hda /dev/hdb /dev/hdc

To see the status of the creation of these devices

cat /proc/mdstat

You Don't have to wait to continue to use the disk.

iSCSI Target Config

SCST is recommended over IET, due to bugfixes, performance and RFC compliance.

Initiator Config

iscsiadm --mode node --targetname NAME_OF_TARGET --portal IP_OF_TARGET --login

This should then give you a device /dev/sda. Check by dmesg.

fdisk /dev/sda

Create a partition to use. sda1 file system type 83

Add ocfs2 tools (available in Alpine 2.3 or greater)

apk add ocfs2-tools

It can take care of starting and stopping services, copying the cluster.conf between nodes,creating the filesystem, and mounting it.

Need to create a /etc/ocfs2/cluster.conf.

This configuration file should be the same on all the nodes in the cluster. Should look similar to the following...

node:

       ip_port = 7777
       ip_address = 192.168.1.202
       number = 0
       name = bubba
       cluster = ocfs2

node:

       ip_port = 7777
       ip_address = 192.168.1.102
       number = 1
       name = bobo
       cluster = ocfs2

cluster:

       node_count = 2
       name = ocfs2

Load modules:

echo ocfs2 >> /etc/modules-load.d/ocfs2.conf
echo dlm >> /etc/modules-load.d/dlm.conf
modprobe ocfs2
modprobe dlm

Mount ocfs2 metafilesystems

echo none /sys/kernel/config configfs defaults 0 0 >> /etc/fstab
echo none /sys/kernel/dlm ocfs2_dlmfs defaults 0 0 >> /etc/fstab

Start ocfs2 cluster

rc-service o2cb start

Run the following command only on one node.

mkfs.ocfs2 -L LABELNAME /dev/sda1

Run the following command on both nodes.

rc-service o2cb enable
mount /dev/sda1 /media/iscsi1

Now you can create read/write/change on both machines to the one drive at the same time.