Create the Store with LVM

It is recommended to create the STORE machine without the disk for the storage being mounted by the installation routines. 

Useful Commands

The following commands are useful to see the current configuration of the machine,

# Show free space on existing devices
df -h

# Show drives
ls /dev/sd*

# Show partitions
fdisk -l

# Show partitions
ls /dev/sd*

# Re-scan the SCSI bus
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
...

# View physical volumes managed by LVM
lvm pvs

# Display logical volumes managed by LVM
lvm lvs

# Display logical volume groups managed by LVM
lvm vgs

# Where is what mounted
mount

Some of the information above may be required to complete installation.

It is important to know where the disk to be used is, and where the space is. 

Usually, we recommend adding a second disk drive to the machine for the storage. 

The following assumes that the disk was added as /dev/sdb on the machine, and is not yet partitioned. 

If this is not the case, or the drive is not /dev/sdb or the space was added to an existing partition, then the commands below will have to be (carefully) modified to take this into account.

Creation Steps

Create a Partition


fdisk /dev/sdb
 
# --> Edit the partitions on /dev/sdb
 
n
# --> Create new partition
p
# --> New primary partition
1
# --> Create new partition 1 (view output at fdisk -1 above)
Enter
# --> Confirmation that the first available cylinder should be used
Enter
# --> Confirmation that the last available cylinder is to be used (gives the maximum size in total)
t
# --> Change partition type
8e
# --> Linux LVM
w
# --> When OK, write

Create LVM Physical Volume

This command creates a physical volume which can be managed by LVM.

The above commands will have created a partition /dev/sdb1. If you are working on a different partition, then modify accordingly.

lvm pvcreate /dev/sdb1

Create a Volume Group

This command creates a volume group called vg_jtelshared. The volume group can be expanded later, by adding more physical volumes. 

lvm vgcreate "vg_jtelshared" /dev/sdb1

Create a Logical Volume

Finally, a logical volume lv_jtelshared is created on the volume group which contains the aggregated space.

lvm lvcreate -l +100%FREE vg_jtelshared -n lv_jtelshared

Create File System

Now, the file system is created. Here we use xfs, though you can use something else if you really want.

mkfs.xfs -L data /dev/vg_jtelshared/lv_jtelshared

Prepare Mount Point

The data should be mounted to the directory /srv/jtel/shared.

The following commands prepare for this:

mkdir /srv/jtel
mkdir /srv/jtel/shared 
chown -R jtel:jtel /srv/jtel

Add to fstab to Mount at Boot

The following adds a line to fstab to mount the file system at boot:

cat <<EOFF >> /etc/fstab
/dev/mapper/vg_jtelshared-lv_jtelshared /srv/jtel/shared        xfs     defaults 0   0
EOFF

Mount the File System

mount /srv/jtel/shared

Checks

df -h

This should show an entry for /srv/jtel/shared with the expected amount of free space.

Install and Configure Access to STORE

Install Samba

These commands install the samba server and client and lsof.

dnf -y install samba samba-client lsof

Configure Samba

The following creates a samba configuration file with a minimum configuration.

# SMB Conf
cat <<EOFF > /etc/samba/smb.conf
[global]
    workgroup = JTEL
    security = user
    passdb backend = tdbsam
    min protocol = SMB3
    reset on zero vc = yes
[shared]
    comment = jtel ACD Shared Directory
    public = no
    read only = no
    writable = yes
    locking = yes
    path = /srv/jtel/shared
    create mask = 0644
    directory mask = 0755
    force user = jtel
    force group = jtel
    acl allow execute always = True
EOFF

Setup SeLinux and the Firewall

The following command sets up selinux for the smb service and opens the necessary ports in the firewall:


setsebool -P samba_enable_home_dirs=on samba_export_all_rw=on use_samba_home_dirs=on use_nfs_home_dirs=on
firewall-cmd --zone=public --add-port=445/tcp --add-port=139/tcp --add-port=138/udp --add-port=137/udp --permanent
firewall-cmd --reload

Enable and Start Samba

The following commands setup the SMB and NMB services to autostart, and start them.

systemctl enable nmb
systemctl enable smb
systemctl start nmb
systemctl start smb

Manually link /home/jtel/shared

Finally, link the /home/jtel/shared folder. 

ln -s /srv/jtel/shared /home/jtel/shared

Setup Access to the Samba Server

jtel User Access

The following command creates the smb credentials for the jtel user.

CAUTION PASSWORD

printf '<password>\n<password>\n' | smbpasswd -a -s jtel

Further User Access

If necessary, add further users to samba - replacing password with the actual password for the user. Here, for example, the windows administrator user:

CAUTION PASSWORD

useradd -m Administrator
printf '<password>\n<password>\n' | smbpasswd -a -s Administrator

Test the file mount

Finally, test the file mount from one of the other machines. Either by connecting to STORE, or by using the windows explorer to attach to \\acd-store\shared

  • No labels