Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 52 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,38 @@

### Building

#### Prerequisites: SSH Key Setup

Before cloning a build VM, ensure your SSH keys are loaded in ssh-agent so they
are automatically installed on the VM for passwordless access:

$ ssh-add -l # Check if keys are loaded
$ ssh-add ~/.ssh/id_ed25519 # Load your key if not already loaded

The `dc clone-latest` command will automatically install your public key from
ssh-agent onto the VM. If no key is available, you'll see a warning and the
VM won't be accessible via SSH key authentication.

**Manual SSH Key Setup (if automatic setup fails):**

If you cloned the VM before loading your keys, or the automatic setup didn't
work, you can manually configure passwordless SSH. First, log in with standard
password:

$ ssh delphix@$USER-bootstrap.dlpxdc.co

Then add your public key to authorized_keys:

$ mkdir -p ~/.ssh && chmod 700 ~/.ssh
$ echo "YOUR_PUBLIC_KEY_HERE" >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

To get your public key, run this on your local machine:

$ cat ~/.ssh/id_ed25519.pub # or id_rsa.pub

#### Create Build VM

Run this command on "dlpxdc.co" to create the VM used to do the build:

$ dc clone-latest --size COMPUTE_LARGE dlpx-internal-buildserver-develop $USER-bootstrap
Expand All @@ -12,9 +44,26 @@ Log into that VM using the "delphix" user, and run these commands:

$ git clone https://github.com/delphix/delphix-platform.git
$ cd delphix-platform
$ sudo apt-get update && sudo apt-get install python3-docker
$ ansible-playbook bootstrap/playbook.yml
$ ./scripts/docker-run.sh make packages

#### Bootstrap and Build

$ sudo apt-get update && sudo apt-get install -y docker.io python3-pip
$ sudo pip3 install docker --break-system-packages
$ sudo usermod -aG docker $USER
$ sudo docker build -t delphix-platform docker/
$ sg docker -c './scripts/docker-run.sh make packages'

#### Build Specific Platforms

To build for a specific platform instead of all platforms:

$ ./scripts/docker-run.sh make package-aws # AWS only
$ ./scripts/docker-run.sh make package-azure # Azure only
$ ./scripts/docker-run.sh make package-esx # ESX only

Available platforms: aws, azure, esx, gcp, hyperv, kvm, oci

Build artifacts are placed in the `artifacts/` directory.

## Contributing

Expand Down
2 changes: 1 addition & 1 deletion debian/postinst
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ configure)
systemctl disable motd-news.timer

# Disable multipathd service by default. It will be enabled if the iSCSI initiator feature is used
systemctl disable multipathd.service
systemctl disable multipathd.service

#
# Various tools generate mail on the system, e.g. cron, and we don't
Expand Down
15 changes: 0 additions & 15 deletions files/common/lib/modprobe.d/10-zfs.conf
Original file line number Diff line number Diff line change
Expand Up @@ -83,21 +83,6 @@ options zfs zfs_mg_noalloc_threshold=5
#
options zfs zfs_override_estimate_recordsize=8192

#
# The default arc metadata eviction policy is a balanced policy. This policy
# evicts both data and metadata and provides a callback to the ZPL layer
# to evict blocks from the inode and dentry caches. This policy has serious
# implications because it tries too hard to reduce metadata so that it's
# below the arc_meta_limit. As a result this can end up consuming all of
# the cpus and causing the system to run out of memory. Since the arc
# metadata eviction is called in the critical path, we want a lightweight
# policy to be used to ensure that eviction happens quickly and new additions
# to the arc are not blocked for a significant amount of time. To do this,
# we changes the metadata eviction policy to ARC_STRATEGY_META_ONLY,
# which is what we used in illumos.
#
options zfs zfs_arc_meta_strategy=0

#
# Increasing zvol taskq threads to 256 to improve performance for some
# workloads. Taskq threads are created and destroyed dynamically so there
Expand Down
Loading