<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osnexus.com/index.php?action=history&amp;feed=atom&amp;title=Ceph_Encryption_Bypass</id>
	<title>Ceph Encryption Bypass - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osnexus.com/index.php?action=history&amp;feed=atom&amp;title=Ceph_Encryption_Bypass"/>
	<link rel="alternate" type="text/html" href="https://wiki.osnexus.com/index.php?title=Ceph_Encryption_Bypass&amp;action=history"/>
	<updated>2026-08-21T01:26:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.osnexus.com/index.php?title=Ceph_Encryption_Bypass&amp;diff=27169&amp;oldid=prev</id>
		<title>Qadmin: Create Ceph Encryption Bypass admin page (per-device encryption exceptions)</title>
		<link rel="alternate" type="text/html" href="https://wiki.osnexus.com/index.php?title=Ceph_Encryption_Bypass&amp;diff=27169&amp;oldid=prev"/>
		<updated>2026-06-18T22:40:02Z</updated>

		<summary type="html">&lt;p&gt;Create Ceph Encryption Bypass admin page (per-device encryption exceptions)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Ceph Encryption Bypass (Per-Device Encryption Exceptions) =&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Ceph Encryption Bypass&amp;#039;&amp;#039;&amp;#039; feature lets you exclude specific device&lt;br /&gt;
types from QuantaStor&amp;#039;s data-at-rest encryption when those devices already&lt;br /&gt;
provide their own encryption. It is used when building OSDs on an&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;encryption-enabled Ceph cluster&amp;#039;&amp;#039;&amp;#039; that contains drives or enclosures&lt;br /&gt;
which encrypt data internally — most commonly self-encrypting storage&lt;br /&gt;
arrays such as the &amp;#039;&amp;#039;&amp;#039;Seagate Corvault&amp;#039;&amp;#039;&amp;#039; family.&lt;br /&gt;
&lt;br /&gt;
Without this feature, every OSD on an encryption-enabled cluster is wrapped&lt;br /&gt;
in QuantaStor&amp;#039;s software (dmcrypt/LUKS) or SED encryption. For media that is&lt;br /&gt;
already self-encrypting that produces redundant &amp;quot;double encryption&amp;quot;, which&lt;br /&gt;
adds CPU and latency overhead and complicates key management with no&lt;br /&gt;
additional security benefit. The encryption bypass list tells QuantaStor to&lt;br /&gt;
create the OSD in the encrypted cluster &amp;#039;&amp;#039;&amp;#039;but skip the encryption layer for&lt;br /&gt;
that one device&amp;#039;&amp;#039;&amp;#039;, trusting the hardware to protect data at rest.&lt;br /&gt;
&lt;br /&gt;
{{Note|The bypass only takes effect on Ceph clusters/OSDs that were created&lt;br /&gt;
with encryption enabled. On an unencrypted cluster it has no effect — nothing&lt;br /&gt;
is encrypted in the first place.}}&lt;br /&gt;
&lt;br /&gt;
== When to use it ==&lt;br /&gt;
&lt;br /&gt;
Add a device to the bypass list when &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of the following are true:&lt;br /&gt;
&lt;br /&gt;
* You are deploying Ceph OSDs on a cluster created with encryption enabled (software dmcrypt/LUKS or SED).&lt;br /&gt;
* The target media (drive, or the LUNs presented by a self-encrypting enclosure) performs its own data-at-rest encryption in hardware.&lt;br /&gt;
* You want the device&amp;#039;s hardware encryption — not QuantaStor&amp;#039;s — to be the encryption-at-rest mechanism for those OSDs.&lt;br /&gt;
&lt;br /&gt;
Typical examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Seagate Corvault&amp;#039;&amp;#039;&amp;#039; self-encrypting enclosures (4U106 and 5U84), which are pre-configured in the bypass list out of the box.&lt;br /&gt;
* Other vendor arrays/drives with always-on internal encryption that you have validated meet your data-at-rest requirements.&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
# When QuantaStor creates a Bluestore OSD on an encryption-enabled cluster, it looks up the OSD&amp;#039;s underlying device by &amp;#039;&amp;#039;&amp;#039;SCSI Vendor ID&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Product (Model) ID&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# If that Vendor/Model pair appears in the encryption bypass list, the device is treated as an &amp;#039;&amp;#039;&amp;#039;encryption exception&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#* On a &amp;#039;&amp;#039;&amp;#039;software (dmcrypt/LUKS)&amp;#039;&amp;#039;&amp;#039; cluster, the OSD is still created as part of the encrypted cluster, but the data device is provisioned with &amp;lt;code&amp;gt;--block.skip-enc&amp;lt;/code&amp;gt; so its block device is not LUKS-encrypted.&lt;br /&gt;
#* On an &amp;#039;&amp;#039;&amp;#039;SED&amp;#039;&amp;#039;&amp;#039; cluster, the device is not crypt-formatted by QuantaStor; the drive&amp;#039;s self-encryption is relied upon instead.&lt;br /&gt;
# Devices &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; in the list are encrypted normally — the bypass is strictly opt-in, per Vendor/Model.&lt;br /&gt;
&lt;br /&gt;
The matching is by Vendor + Model string only, so a single entry covers&lt;br /&gt;
every drive/LUN of that type across the cluster.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The bypass list is a per-node configuration file:&lt;br /&gt;
&lt;br /&gt;
 /opt/osnexus/quantastor/conf/qs_encryption_bypass.conf&lt;br /&gt;
&lt;br /&gt;
It is an INI-style file. Each entry is a named section with a&lt;br /&gt;
&amp;lt;code&amp;gt;vendor&amp;lt;/code&amp;gt; and a &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt; key that must match the device&amp;#039;s&lt;br /&gt;
SCSI Vendor ID and Product ID exactly (case-sensitive):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Seagate Corvault systems have built-in encryption, so QuantaStor&amp;#039;s&lt;br /&gt;
# software/SED encryption is bypassed for these devices.&lt;br /&gt;
[seagate_corvault_4u106]&lt;br /&gt;
vendor=SEAGATE&lt;br /&gt;
model=6575&lt;br /&gt;
&lt;br /&gt;
[seagate_corvault_5u84]&lt;br /&gt;
vendor=SEAGATE&lt;br /&gt;
model=6566&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a new device type:&lt;br /&gt;
&lt;br /&gt;
# Determine the device&amp;#039;s SCSI &amp;#039;&amp;#039;&amp;#039;Vendor ID&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Product/Model ID&amp;#039;&amp;#039;&amp;#039;. You can read these from:&lt;br /&gt;
#* The WUI — &amp;#039;&amp;#039;&amp;#039;Physical Disks/Devices&amp;#039;&amp;#039;&amp;#039; → disk properties (Vendor / Model fields).&lt;br /&gt;
#* The CLI — &amp;lt;code&amp;gt;qs physical-disk-get &amp;lt;disk&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* The shell — &amp;lt;code&amp;gt;lsscsi -v&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;sg_inq /dev/sdX&amp;lt;/code&amp;gt; (Vendor identification / Product identification).&lt;br /&gt;
# Add a new section to &amp;lt;code&amp;gt;qs_encryption_bypass.conf&amp;lt;/code&amp;gt; with the matching &amp;lt;code&amp;gt;vendor=&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;model=&amp;lt;/code&amp;gt; values.&lt;br /&gt;
# Repeat the edit on &amp;#039;&amp;#039;&amp;#039;every Ceph node&amp;#039;&amp;#039;&amp;#039; that will host OSDs of that device type. This file is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; grid-synced — it is a local, per-node configuration that you must update manually on each node.&lt;br /&gt;
# Restart the QuantaStor service so the list is reloaded: &amp;lt;code&amp;gt;systemctl restart quantastor&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;qs-util restartmgmt&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
{{Note|Add the device to the bypass list &amp;#039;&amp;#039;&amp;#039;before&amp;#039;&amp;#039;&amp;#039; creating the OSDs you&lt;br /&gt;
want excluded. Existing OSDs are not retroactively re-encrypted or&lt;br /&gt;
de-encrypted when the list changes — the bypass is evaluated at OSD-creation&lt;br /&gt;
time.}}&lt;br /&gt;
&lt;br /&gt;
== ceph-volume patch dependency ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--block.skip-enc&amp;lt;/code&amp;gt; option used on software-encrypted clusters&lt;br /&gt;
is a QuantaStor extension to the stock Ceph &amp;lt;code&amp;gt;ceph-volume&amp;lt;/code&amp;gt; tool.&lt;br /&gt;
QuantaStor maintains this patch automatically and admins do not normally need&lt;br /&gt;
to interact with it:&lt;br /&gt;
&lt;br /&gt;
* The patch is &amp;#039;&amp;#039;&amp;#039;idempotent and version-aware&amp;#039;&amp;#039;&amp;#039; — safe to re-run, and it only applies the patch set matching the running Ceph release.&lt;br /&gt;
* It is re-applied automatically at QuantaStor service start, after any &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; operation that may have reinstalled/upgraded &amp;lt;code&amp;gt;ceph-volume&amp;lt;/code&amp;gt;, and on boot before any OSD is activated.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Fail-safe by design:&amp;#039;&amp;#039;&amp;#039; if the patch cannot be applied to the running &amp;lt;code&amp;gt;ceph-volume&amp;lt;/code&amp;gt; (for example after an unexpected Ceph point-release change), QuantaStor logs a loud patch-failure error and the OSD operation fails rather than silently mis-encrypting data. If you see such an alert, contact OSNexus support before forcing OSD creation.&lt;br /&gt;
&lt;br /&gt;
To temporarily disable the ceph-volume patching (advanced/support use only),&lt;br /&gt;
create the disable touchfile on the affected node:&lt;br /&gt;
&lt;br /&gt;
 /var/opt/osnexus/quantastor/touchfiles/tf_qs_ceph_volume_patch.disable&lt;br /&gt;
&lt;br /&gt;
While this touchfile is present, the patch is not applied and&lt;br /&gt;
encryption-bypass OSD creation on software-encrypted clusters will fail.&lt;br /&gt;
Remove the touchfile and restart the service to re-enable.&lt;br /&gt;
&lt;br /&gt;
== Verifying ==&lt;br /&gt;
&lt;br /&gt;
After creating OSDs on a bypassed device type:&lt;br /&gt;
&lt;br /&gt;
* Confirm the OSDs come &amp;#039;&amp;#039;&amp;#039;up/in&amp;#039;&amp;#039;&amp;#039; normally (WUI Ceph view, or &amp;lt;code&amp;gt;ceph osd tree&amp;lt;/code&amp;gt;).&lt;br /&gt;
* On a software-encrypted cluster, confirm the bypassed device&amp;#039;s data block device is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; a LUKS/dmcrypt device (e.g. &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; shows no &amp;lt;code&amp;gt;crypt&amp;lt;/code&amp;gt; layer on it), while non-bypassed OSDs on the same cluster still show the encrypted layer.&lt;br /&gt;
* Review &amp;lt;code&amp;gt;/var/log/qs/ceph_volume_patch.log&amp;lt;/code&amp;gt; and the QuantaStor service log if you need to confirm the ceph-volume patch applied cleanly.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Create Ceph Cluster Configuration]]&lt;br /&gt;
* [[Physical Disks/Devices]]&lt;br /&gt;
* [[Security Configuration]]&lt;br /&gt;
* [[QuantaStor systemd Services]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator Guide]]&lt;br /&gt;
[[Category:Scale-out Storage (Ceph)]]&lt;br /&gt;
[[Category:Encryption]]&lt;/div&gt;</summary>
		<author><name>Qadmin</name></author>
	</entry>
</feed>