AOS 5.18から仮想マシンを削除した場合、24時間以内であれば復活させることが出来る機能が搭載されました。
今回はこのゴミ箱機能について見ていきたいと思います。
まずこのゴミ箱機能の基本は、以下となります。
- ゴミ箱機能はデフォルトで有効です
- クラスターのストレージ空き容量が重要な閾値に達しない限り、コンテンツを最大24時間保持します。
ゴミ箱機能は、デフォルトで有効になっているとのことですが、ゴミ箱機能が不要の場合、以下のコマンドをCVMで実行することでゴミ箱機能を無効にすることが出来ます。
recycle_bin -operation update_time_to_live -recycle_bin_ttl_secs -1
なお、ゴミ箱設定は、「container_name」を指定することで、ストレージコンテナごとに設定することも出来ます。
ゴミ箱を空にするタイミングは、デフォルト24時間のようですが、-recycle_bin_ttl_secsを変更することで時間を変更することも可能です。
▼ストレージコンテナ「STG01」で48時間まで仮想マシンをゴミ箱で保持するコマンド
recycle_bin -operation update_time_to_live -recycle_bin_ttl_secs 172800 -container_name STG01
ゴミ箱を空にするには以下のコマンドを実行します。
この例では、ストレージコンテナ「STG01」のゴミ箱を空にしようとしています。
recycle_bin -operation delete -container_name STG01 -delete_all
ainer_name STG01 -delete_all
I20200830 03:17:40.660087Z 1950 medusa.cc:1275] CreateGlobalMedusaBinaryLoggerRegistry
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@log_env@960: Client environment:zookeeper.version=zookeeper C client 3.4.3
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@log_env@964: Client environment:host.name=ntnx-17sm6c100126-a-cvm
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@log_env@971: Client environment:os.name=Linux
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@log_env@972: Client environment:os.arch=3.10.0-1127.13.1.el7.nutanix.20200722.cvm.x86_64
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@log_env@973: Client environment:os.version=#1 SMP Wed Jul 22 01:48:43 UTC 2020
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@zookeeper_init@1008: Initiating client connection, host=zk3:9876,zk2:9876,zk1:9876 sessionTimeout=20000 watcher=0x55f8f1524200 sessionId=0 sessionPasswd=<null> context=0x55f8f4078040 flags=0
I20200830 03:17:40.661561Z 1950 zeus.cc:2062] recycle_bin is attempting to connect to Zookeeper
2020-08-30 03:17:40,663Z:1950(0x7fb8fa066700):ZOO_INFO@zookeeper_interest@1954: Connecting to server 192.168.XXX.YYY:9876
2020-08-30 03:17:40,663Z:1950(0x7fb8fa066700):ZOO_INFO@zookeeper_interest@1991: Zookeeper handle state changed to ZOO_CONNECTING_STATE for socket [192.168.XXX.YYY:9876]
2020-08-30 03:17:40,663Z:1950(0x7fb8fa066700):ZOO_INFO@check_events@2191: initiated connection to server [192.168.XXX.YYY:9876]
2020-08-30 03:17:40,670Z:1950(0x7fb8fa066700):ZOO_INFO@check_events@2239: session establishment complete on server [192.168.XXX.YYY:9876], sessionId=0x27428bdbfab48ff, negotiated timeout=20000
I20200830 03:17:40.670706Z 1954 zeus.cc:2124] Received new client id: 0x27428bdbfab48ff
I20200830 03:17:40.670790Z 1954 zeus.cc:617] Connected to Zookeeper instance 192.168.XXX.YYY:9876
I20200830 03:17:40.670869Z 1950 zeus.cc:341] Zookeeper client health notification enabled
I20200830 03:17:40.670938Z 1950 zeus.cc:3207] Scheduling next shuffle leadership intent routine after 240 seconds
I20200830 03:17:40.670981Z 1950 zeus_connector.cc:169] Started zeus_connector with session id 27428bdbfab48ff
I20200830 03:17:40.672344Z 1954 zeus_configuration_ops.cc:588] Established Zeus watch id 0
I20200830 03:17:40.673498Z 1954 zeus_configuration_ops.cc:697] ReadConfigurationOp(0)[watch_cbks:1 watch_id:0 convert_ssd:1 sync:0]: Found config with timestamp 1056279
I20200830 03:17:40.673553Z 1954 zeus_connector.cc:377] Received a Zeus configuration update.
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@log_env@960: Client environment:zookeeper.version=zookeeper C client 3.4.3
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@log_env@964: Client environment:host.name=ntnx-17sm6c100126-a-cvm
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@log_env@971: Client environment:os.name=Linux
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@log_env@972: Client environment:os.arch=3.10.0-1127.13.1.el7.nutanix.20200722.cvm.x86_64
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@log_env@973: Client environment:os.version=#1 SMP Wed Jul 22 01:48:43 UTC 2020
2020-08-30 03:17:40,661Z:1950(0x7fb8fa20ad00):ZOO_INFO@zookeeper_init@1008: Initiating client connection, host=zk3:9876,zk2:9876,zk1:9876 sessionTimeout=20000 watcher=0x55f8f1524200 sessionId=0 sessionPasswd=<null> context=0x55f8f4078040 flags=0
I20200830 03:17:40.661561Z 1950 zeus.cc:2062] recycle_bin is attempting to connect to Zookeeper
2020-08-30 03:17:40,663Z:1950(0x7fb8fa066700):ZOO_INFO@zookeeper_interest@1954: Connecting to server 192.168.XXX.YYY:9876
2020-08-30 03:17:40,663Z:1950(0x7fb8fa066700):ZOO_INFO@zookeeper_interest@1991: Zookeeper handle state changed to ZOO_CONNECTING_STATE for socket [192.168.XXX.YYY:9876]
2020-08-30 03:17:40,663Z:1950(0x7fb8fa066700):ZOO_INFO@check_events@2191: initiated connection to server [192.168.XXX.YYY:9876]
2020-08-30 03:17:40,670Z:1950(0x7fb8fa066700):ZOO_INFO@check_events@2239: session establishment complete on server [192.168.XXX.YYY:9876], sessionId=0x27428bdbfab48ff, negotiated timeout=20000
I20200830 03:17:40.670706Z 1954 zeus.cc:2124] Received new client id: 0x27428bdbfab48ff
I20200830 03:17:40.670790Z 1954 zeus.cc:617] Connected to Zookeeper instance 192.168.XXX.YYY:9876
I20200830 03:17:40.670869Z 1950 zeus.cc:341] Zookeeper client health notification enabled
I20200830 03:17:40.670938Z 1950 zeus.cc:3207] Scheduling next shuffle leadership intent routine after 240 seconds
I20200830 03:17:40.670981Z 1950 zeus_connector.cc:169] Started zeus_connector with session id 27428bdbfab48ff
I20200830 03:17:40.672344Z 1954 zeus_configuration_ops.cc:588] Established Zeus watch id 0
I20200830 03:17:40.673498Z 1954 zeus_configuration_ops.cc:697] ReadConfigurationOp(0)[watch_cbks:1 watch_id:0 convert_ssd:1 sync:0]: Found config with timestamp 1056279
I20200830 03:17:40.673553Z 1954 zeus_connector.cc:377] Received a Zeus configuration update.
Clearing all recycle bin contents for container STG01
Proceed? (y/n) y
Proceed? (y/n) y
Clearing recycle bin for container STG01
I20200830 03:17:49.262601Z 1952 tcp_client.cc:293] Setting up new connection with 127.0.0.1:2049
I20200830 03:17:49.262601Z 1952 tcp_client.cc:293] Setting up new connection with 127.0.0.1:2049
I20200830 03:17:49.263690Z 1952 recycle_bin.cc:140] Recycle bin DeleteAll operation completed
I20200830 03:17:49.263725Z 1950 recycle_bin.cc:458] Exiting
I20200830 03:17:49.263742Z 1950 zeus_connector.cc:183] Closing down zeus_connector with session id 27428bdbfab48ff
I20200830 03:17:49.263751Z 1950 zeus.cc:355] Destroying Zeus
2020-08-30 03:17:49,364Z:1950(0x7fb8fa20ad00):ZOO_INFO@zookeeper_close@3104: Closing zookeeper sessionId=0x27428bdbfab48ff to [192.168.XXX.YYY:9876]
I20200830 03:17:49.464782Z 1950 tcp_connection.cc:645] TcpConnection with fd 12, conn_id 0 waiting for quiescing callbacks peer info 127.0.0.1:2049:TCP
I20200830 03:17:49.464963Z 1950 tcp_connection.cc:657] TcpConnection with fd 12, conn_id 0 wait for quiescing callbacks finished peer info 127.0.0.1:2049:TCP
I20200830 03:17:49.263742Z 1950 zeus_connector.cc:183] Closing down zeus_connector with session id 27428bdbfab48ff
I20200830 03:17:49.263751Z 1950 zeus.cc:355] Destroying Zeus
2020-08-30 03:17:49,364Z:1950(0x7fb8fa20ad00):ZOO_INFO@zookeeper_close@3104: Closing zookeeper sessionId=0x27428bdbfab48ff to [192.168.XXX.YYY:9876]
I20200830 03:17:49.464782Z 1950 tcp_connection.cc:645] TcpConnection with fd 12, conn_id 0 waiting for quiescing callbacks peer info 127.0.0.1:2049:TCP
I20200830 03:17:49.464963Z 1950 tcp_connection.cc:657] TcpConnection with fd 12, conn_id 0 wait for quiescing callbacks finished peer info 127.0.0.1:2049:TCP
標準出力の中に、オペレーションが必要なメッセージやステータスのメッセージが紛れているので見づらいのですが、メッセージを見ながら確認をしていく必要があります。
なお、Prismから仮想マシンを作成した場合、今までの画面と同じ画面で特に変更はありません。
この「.nutanix_recycle_bin」内に、削除した仮想マシンの構成情報と仮想ディスクが移動していることが分ります。
「.config」の拡張子は、仮想マシンの設定ファイルで、UUIDで表示されているのが仮想ディスクのようです。
なお、Prismを使用せず、ストレージコンテナのファイルを直接ファイル操作オペレーションで削除した場合においても、自動的に「.nutanix_recycle_bin」フォルダに移動します。
recycle_binコマンドには、実際に「-operation」に「restore」というオプションパラメーターが有り、「-source_path」と「-restore_path」のパラメーターがありファイル自体のリストアは出来るようですが、そこから仮想マシンとして再登録するオプションがまだ実装されていないようで、このためリストアにおけるオペレーションは、現行Nutanixサポートに依頼をする必要があります。