檔案系統加密:若要啟用先前未加密的檔案系統加密,需要執行下列步驟
在
config.ini
檔案的[ndbd default]
區段中,設定所需的資料節點參數,如下所示[ndbd default] EncryptedFileSystem= 1
這些參數必須在所有資料節點上設定,如上所示。
執行所有資料節點的滾動式初始啟動 (或重新啟動) (請參閱 第 25.6.5 節 「執行 NDB Cluster 的滾動式重新啟動」):使用
--initial
啟動每個資料節點;此外,還需向每個資料節點程序提供選項--filesystem-password
或--filesystem-password-from-stdin
以及密碼。當您在命令列上提供密碼時,會顯示類似於以下的警告> ndbmtd -c 127.0.0.1 --filesystem-password=ndbsecret ndbmtd: [Warning] Using a password on the command line interface can be insecure. 2022-08-22 16:17:58 [ndbd] INFO -- Angel connected to '127.0.0.1:1186' 2022-08-22 16:17:58 [ndbd] INFO -- Angel allocated nodeid: 5
--filesystem-password
可以從檔案、tty
或stdin
接受密碼;--filesystem-password-from-stdin
僅從stdin
接受密碼。後者可保護密碼不暴露在程序命令列或檔案系統中,並允許從其他安全應用程式傳遞密碼的可能性。您也可以將密碼放在資料節點程序可以讀取,但系統的其他使用者無法讀取的
my.cnf
檔案中。使用與先前範例相同的密碼,檔案的相關部分應如下所示[ndbd] filesystem-password=ndbsecret
您也可以在啟動資料節點程序時,透過在
my.cnf
檔案中使用--filesystem-password-from-stdin
選項,來提示使用者提供加密密碼,如下所示[ndbd] filesystem-password-from-stdin
在這種情況下,當啟動資料節點程序時,會提示使用者輸入密碼,如下所示
> ndbmtd -c 127.0.0.1 Enter filesystem password: ********* 2022-08-22 16:36:00 [ndbd] INFO -- Angel connected to '127.0.0.1:1186' 2022-08-22 16:36:00 [ndbd] INFO -- Angel allocated nodeid: 5 >
無論使用何種方法,加密密碼的格式都與加密備份的密碼相同 (請參閱 第 25.6.8.2 節「使用 NDB Cluster 管理用戶端建立備份」);當啟動每個資料節點程序時,必須提供密碼;否則,資料節點程序無法啟動。這會由資料節點記錄檔中的以下訊息指出
> tail -n2 ndb_5_out.log 2022-08-22 16:08:30 [ndbd] INFO -- Data node configured to have encryption but password not provided 2022-08-22 16:08:31 [ndbd] ALERT -- Node 5: Forced node shutdown completed. Occurred during startphase 0.
當如上述重新啟動時,每個資料節點都會清除其磁碟上的狀態,並以加密形式重建它。
檔案系統密碼輪換:若要更新資料節點使用的加密密碼,請執行資料節點的滾動式初始重新啟動,並在使用 --filesystem-password
或 --filesystem-password-from-stdin
重新啟動時,向每個資料節點提供新密碼。
檔案系統解密:若要從加密的檔案系統中移除加密,請執行以下操作
若要查看是否已正確設定檔案系統加密,您可以使用針對 ndbinfo
config_values
和 config_params
資料表的查詢,類似於以下查詢
mysql> SELECT v.node_id AS Node, p.param_name AS Parameter, v.config_value AS Value
-> FROM ndbinfo.config_values v
-> JOIN ndbinfo.config_params p
-> ON v.config_param=p.param_number
-> WHERE p.param_name='EncryptedFileSystem';
+------+----------------------+-------+
| Node | Parameter | Value |
+------+----------------------+-------+
| 5 | EncryptedFileSystem | 1 |
| 6 | EncryptedFileSystem | 1 |
| 7 | EncryptedFileSystem | 1 |
| 8 | EncryptedFileSystem | 1 |
+------+----------------------+-------+
4 rows in set (0.10 sec)
在此,所有資料節點上的 EncryptedFileSystem
等於 1
,這表示此叢集已啟用檔案系統加密。