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 # 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/shared
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 ntlm auth = yes [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes [shared] comment = jtel ACD Shared Directory read only = no public = yes writable = yes locking = yes path = /srv/jtel/shared guest ok = yes 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