Added a section on how to encrypt the data mirror.
authorctimmers07@139f6d7ae93821c8e82218a07e9d4cefba8033b4 <ctimmers07@web>
Sun, 25 Nov 2018 11:45:31 +0000 (11:45 +0000)
committerIkiWiki <ikiwiki.info>
Sun, 25 Nov 2018 11:45:31 +0000 (11:45 +0000)
docs/how_to_implement_hammer_pseudo_file_system__40___pfs___41___slave_mirroring_from_pfs_master/index.mdwn

index a96d532..8bd3733 100644 (file)
@@ -2,6 +2,80 @@
 #Scenario
 I have two 500 GB hard disks both with the Hammer file system. I want to create a master PFS in one hard disk and a slave PFS in the other disk. I want to mirror the data continuously from the master PFS to the slave PFS. This will help me avoid long 'fsck' and RAID parity rewrite times after an unclean shut down, and also will give me a setup somewhat like RAID 1.
 
+#Preparing the Disks
+
+In this example we will be using ad4s1h and ad6s1h but you're disks are most likely going to be different. To find your disks you can scan through dmesg.
+    
+    $ dmesg | less
+
+You can then press / and type "ad" or "da" (without the quotes) depending on the type of controller you have.
+
+##Creating Disk Labels
+If your disks are brand new they'll need to be formatted as either GPT or MBR prior to creating the slices/partitions. Here are some resources for creating a disklabel and adding a slice/partition on each disk.
+
+<https://www.dragonflybsd.org/docs/handbook/UnixBasics/#index22h3>
+
+<https://www.dragonflybsd.org/~labthug/handbook/disks-adding.html>
+
+##Encryption (Optional)
+This step is not necessary but if you are looking to encrypt your data you'll have to do it now. You can either encrypt your disks with a password a key or both I will show an example of each below:
+
+
+###Password (you will be prompted for your password at boot)
+####Create encrypted containers with password
+
+    # cryptsetup luksFormat /dev/ad4s1h
+    # cryptsetup luksFormat /dev/ad6s1h
+
+####Open encrypted container with password
+
+    # cryptsetup luksOpen /dev/ad4s1h crypt-master
+    # cryptsetup luksOpen /dev/ad6s1h crypt-slave
+
+
+###Keyfile (keyfiles on removable media are outside the scope of this guide.)
+####Create a keyfile and use it to create encrypted containers
+
+    # mkdir /root/keys && chmod 700 /root/keys
+    # dd if=/dev/urandom of=/root/keys/data.key bs=512 count=4
+    # chmod 400 /root/keys/data.key
+    # cryptsetup luksFormat /dev/ad4s1h /root/keys/data.key
+    # cryptsetup luksFormat /dev/ad6s1h /root/keys/data.key
+
+####Open encrypted containers with keyfile
+
+    # cryptsetup luksOpen /dev/ad4s1h --key-file /root/keys/data.key crypt-master
+    # cryptsetup luksOpen /dev/ad6s1h --key-file /root/keys/data.key crypt-slave
+
+
+###Locating Serial Numbers
+Locate the Serial Number for your disk partitions/slices. To find the serno you can look in dmesg and match it with the entries in /dev/serno. After locating them add them to the /etc/crypttab.(if you are unable to copy and paste you can do the following and then just remove what you don't need)
+    
+    # ls /dev/serno >> /etc/crypttab
+
+
+###Edit /etc/crypttab with your editor of choice and add the following lines:
+####Password
+
+    crypt-master /dev/serno/WD-WCC3F0PLTCZD.s1h none none
+    crypt-slave  /dev/serno/WD-WCC6Y1AEVTK0.s1h none none
+
+
+####Keyfile
+
+    crypt-master /dev/serno/WD-WCC3F0PLTCZD.s1h /root/keys/data.key none
+    crypt-slave  /dev/serno/WD-WCC6Y1AEVTK0.s1h /root/keys/data.key none
+
+
+###Notice
+If you have chosen to encrypt your data mirror you will need to make your HAMMER file systems on the newly created encrypted volumes instead of the slices/partitions themselves. So instead of /dev/ad4s1h and /dev/ad6s1h below you would be using /dev/mapper/crypt-master and /dev/mapper/crypt-slave respectively.
+
+
+#Creating HAMMER file system
+
+    newfs_hammer -L DATA /dev/ad4s1h
+    newfs_hammer -L DATA /dev/ad6s1h
+
 #Creating the master PFS on Disk 1
 
 The Hammer file systems on Disk 1 and Disk 2 are mounted in '/etc/fstab' according to the following.