|
|
Installing FreeBSD on the boss server is similar to installing FreeBSD on the ops server. Before proceeding, ensure that the machine you will use as your boss server is properly connected to your network and that all of the required software is available either through the network or some other media.
|
|
|
## Install FreeBSD
|
|
|
|
|
|
Boot the FreeBSD installation CD on the machine you will use as your boss server. When it asks for the desired installation mode, select Standard. Use the standard bootloader unless you have special requirements.
|
|
|
**Note:** Installing FreeBSD on the boss server is largely the same as installing FreeBSD on the ops server, but with fewer machinations related to filesystem layout.
|
|
|
|
|
|
As with ops, you need to create partitions with the following minimum sizes:
|
|
|
**Note:** Before proceeding, ensure that the machine you will use as your boss server is properly connected to your network and that all of the required software is available either through the network or some other media.
|
|
|
|
|
|
* **/usr** Needs space for the ports tree and a system object tree, at least 10GB. Be sure to build with plenty of inodes (the ports tree itself uses about 200000, so be safe and build with at least a million).
|
|
|
Boot the FreeBSD installation CD on the machine you will use as your `boss` server. You will want to do an "Install" and then select your keymap and hostname. When it asks about optional components, only select "lib32" and "src", you do not want "ports" since you will be loading pre-built packages from Emulab.
|
|
|
|
|
|
* **/usr/testbed** Needs space for testbed software and logs, as well as many disk images. At least 10GB, but much more is better. You may simply make sure this space is available in `/usr`, and not make this a separate partition.
|
|
|
Next it will ask you about disks and disk partitioning. Similar to the `ops` node setup, there are two basic ways to partition the disk space--put everything on a single disk or use one disk for the OS only and other disks for Emulab bits. As with `ops`, we just choose the first disk, probably /dev/ada0, and create a single partition in which to install the base system, and worry about space for Emulab later.
|
|
|
|
|
|
* **/var** Holds the database, so at least 10 GB.
|
|
|
From the menu choose "Auto (UFS)", and then "Entire Disk", confirm erasing the disk and then choose either MBR or GPT. If your disk is over 2TB and the server BIOS supports UEFI boot, select GPT. Otherwise it is probably easiest to stick with MBR and a "legacy boot" BIOS setting.
|
|
|
|
|
|
When prompted, continue by selecting the 'Developer' distribution set - this will install full sources. When it asks you if you want to install the ports collection, answer **no**. Do not install any packages at this time. You will get a chance to do so later.
|
|
|
Next it will put you in the partition editor and want you to review the partitioning. If you are dedicating the entire disk to the OS, then just select "Finish". If you are using a single disk for OS and the Emulab install, then you will need to shrink the FreeBSD partition to leave room for Emulab. Unfortunately, doing this requires you "Delete" the existing "freebsd-ufs" and "freebsd-swap" partitions and "Create" new ones. They should be created under the "BSD" partition (probably ada0s1). The "freebsd-ufs" partition should be 50-100GB and should have a mountpoint of "/". The swap partition you can make 16GB or smaller. Once you have recreated these partitions select "Finish".
|
|
|
|
|
|
Near the end of the installation, you will be asked if you wish to install or configure several optional items. Apart from setting the hostname, configuring your network devices, enabling SSH logins (if desired), and setting your time zone and root password, you should skip additional configuration.
|
|
|
Now it will prompt you to "Commit" the changes. After doing so, it will begin the install.
|
|
|
Near the end of the installation, you will be asked if you wish to install or configure several optional items. Do set the root password, configure your network device, configure DNS, set your time and time zone, and enable SSH logins (if desired). You should skip any other configuration.
|
|
|
|
|
|
Do **not** create any user accounts yet, and just log in as root for the time being. Our software will create user accounts later, once boss is set up. If you already created any users, delete them with the "pw" command and make sure their home directories are removed as well! Be sure to remember your root password, you will need it later!
|
|
|
|
|
|
After exiting the sysinstall tool and rebooting, you should login as root and run freebsd-update to pick up security patches:
|
|
|
Do **not** create any user accounts yet, and just log in as root for the time being. Our software will create user accounts later, once you get boss set up correctly. If you already created any users, delete them with the "pw" command and make sure their home directories are removed as well!
|
|
|
|
|
|
Installation will complete and it will ask if you want to reboot the machine. Do so, and after rebooting, login as root and run `freebsd-update` to pick up security patches (**NOTE:** If you are installing FreeBSD 11.3 skip this step since 11.3 has reached end-of-life and there are no updates. This step will be needed when we transition to FreeBSD 12.2.):
|
|
|
```
|
|
|
freebsd-update fetch
|
|
|
freebsd-update install
|
|
|
```
|
|
|
|
|
|
## Create Emulab Partitions
|
|
|
|
|
|
On the `boss` node there is only one Emulab-related file hierarchy to worry about. Note that the example size in square brackets is for the case of a 1TB single disk, you can adjust accordingly based on your available space.
|
|
|
|
|
|
* **/usr/testbed** Space for testbed software, data, and logs, as well as standard disk images. The requirements here are mostly about how many images you are likely to have and how long you want to keep logs. Anywhere from 100GB to 1TB is a good choice. [800GB]
|
|
|
|
|
|
While we have split `/usr/testbed` into multiple filesystems (e.g., `/usr/testbed`, /usr/testbed/data`, `/usr/testbed/logs`) at some sites, there is not a particularly compelling reason to do so for most people.
|
|
|
|
|
|
### Using UFS
|
|
|
|
|
|
The traditional UFS filesystem is best used with a single redundant underlying volume, either
|
|
|
a hardware RAID provided volume, or a virtual disk provided by the VM host. Otherwise you are taking your chances with a disk failure. While you can use FreeBSD's `gvinum` or `graid` to implement RAID or interact with a software RAID controller, it is recommended that you [use ZFS instead](#using-zfs) if you need to build a multi-disk redundant configuration.
|
|
|
|
|
|
Here are two examples of configuring space on a single disk, either for a system with a large single disk shared by both the OS and Emulab, or with a second disk dedicated to Emulab bits.
|
|
|
|
|
|
#### Shared Single Disk
|
|
|
|
|
|
This example creates a separate filesystem for `/usr/testbed`. It assumes you have modified the FreeBSD install and swap partitions during installation to leave space for this filesystem. You can use `gpart show` to determine what device ("geom") to specify, use the one with the most free space. It will most likely be "ada0s1" as is shown in the following.
|
|
|
```
|
|
|
# 800G for /usr/testbed
|
|
|
gpart add -t freebsd-ufs -s 800G ada0s1
|
|
|
|
|
|
# create the filesystem and mountpoint
|
|
|
newfs -n -j /dev/ada0s1d
|
|
|
mkdir /usr/testbed
|
|
|
|
|
|
# add to fstab and mount
|
|
|
echo '/dev/ada0s1d /usr/testbed ufs rw 1 2' >> /etc/fstab
|
|
|
mount /usr/testbed
|
|
|
```
|
|
|
|
|
|
#### Second Dedicated Disk
|
|
|
|
|
|
If you have a second disk (/dev/ada1) available for just Emulab, then the process is similar, but the disk first has to be prepared. We use GPT partitioning in this case to be consistant with the `ops` node configuration.
|
|
|
```
|
|
|
gpart create -s GPT /dev/ada1
|
|
|
```
|
|
|
The remaining steps are very similar to the above, but note the change in device names from the previous example.
|
|
|
```
|
|
|
# 800G for /usr/testbed
|
|
|
gpart add -t freebsd-ufs -s 800G ada1
|
|
|
|
|
|
# create the filesystem and mountpoint
|
|
|
newfs -n -j /dev/ada1p1
|
|
|
mkdir /usr/testbed
|
|
|
|
|
|
# add to fstab and mount
|
|
|
echo '/dev/ada1p1 /usr/testbed ufs rw 1 2' >> /etc/fstab
|
|
|
mount /usr/testbed
|
|
|
```
|
|
|
|
|
|
### Using ZFS
|
|
|
|
|
|
|
|
|
* [Prev](install/Installing Emulab on ops)
|
|
|
* [Next](install/Installing Emulab on boss)
|
|
|
* [Home](install/Installing Emulab) |