Synology Cloud Syncを利用するにあたり、バックアップ先のクラウドストレージの容量単価を調べていきたいと思います。
連携可能なCloud Storage (2021/03/01時点)
単価比較
有名どころで、使いそうなものから調べて行きたいと思います。
Synology Cloud Syncを利用するにあたり、バックアップ先のクラウドストレージの容量単価を調べていきたいと思います。
有名どころで、使いそうなものから調べて行きたいと思います。
NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。
コンテキストスイッチの回数を調べる - syohex’s diary
自発的(voluntary)なコンテキストスイッチは、sched_yieldを呼び出した場合や IO待ち等で発生したコンテキストスイッチを示します。非自発的(nonvoluntary) なコンテキストスイッチは走行時間を使い切ったとかより優先度が 高いプロセスをすぐに動かす必要がある場合等に発生したコンテキストスイッチを 示します。
[root@node1 ~]# pidstat -p 841 -w 1 Linux 4.14.35-1818.3.3.el7uek.x86_64 (node1.local) 02/28/21 _x86_64_ (2 CPU) 00:31:41 UID PID cswch/s nvcswch/s Command 00:31:42 0 841 1.00 0.00 bash 00:31:43 0 841 122.00 91.00 bash 00:31:44 0 841 134.00 71.00 bash 00:31:45 0 841 145.00 64.00 bash 00:31:46 0 841 136.00 71.00 bash 00:31:47 0 841 77.00 30.00 bash ```` # シェル芸 * [https://qiita.com/laikuaut/items/1daa06900ad045d119b4:title]
以下を思いつきました。
ネットワーク障害で対向先が突然応答しなくなるケースを模擬したいです。
OCIのセグメント間通信をセキュリティ・リストにより許可する時に、
イングレス、エグレスルールをステートフルで設定すると、
戻りの通信も併せて許可されてしまいます。
なので、ステートレスでルールを設定し、通信を行っている状態で、戻りの通信のルールを削除してあげれば、 対向先が突然応答しなくなるケースを作れるはずです。
今度試してみたいと思います。
time コマンドで計測されるものの、イメージについてメモ。
timeコマンドの出力の意味。
real 指定したコマンドを実行するためにかかった時間
user 指定したコマンドを実行するため使用したユーザーCPU時間
sys 指定したコマンドを実行するために使ったシステムCPU時間
【 time 】コマンド(bash)――コマンドの実行時間を計測する:Linux基本コマンドTips(251) - @IT
real - user - sys で残るのは、IOとかネットワーク待機のはず。
なので、IOする処理を計測してみました。
[root@node1 ~]# time (dd bs=1G count=1 if=/dev/zero of=outfile) 1+0 レコード入力 1+0 レコード出力 1073741824 バイト (1.1 GB) コピーされました、 3.38811 秒、 317 MB/秒 real 0m3.583s user 0m0.001s sys 0m1.738s
Oracle RACでは各nodeにVIPが作成されるので、Clientからの接続時にはそちらを指定して接続します。 ※SCANは使用しない前提としています。
接続にVIPを使用するのは障害時に、Clientが通信エラーを検知するまでの時間を短くするためですが、今回は、そのエラー検知までの時間を確認したいと思います。
例えば、2node RACで node2が障害により停止したケースで、接続時Failoverが行われる流れは以下ですが、今回計測するのは、2~4の部分になります。
## /etc/hosts 10.0.2.15 node1.local node1 10.0.2.16 node2.local node2 10.0.2.17 node1-vip.local node1-vip 10.0.2.18 node2-vip.local node2-vip 10.0.2.19 scan.local scan
$ time (sqlplus -l APP_USER/oracle@10.0.2.16:1521/pdb1.local)
$ time (sqlplus -l APP_USER/oracle@10.0.2.18:1521/pdb1.local)
それぞれ、以下の様にエラーとなります。この時の real の値を確認します。
node2の物理IPへ到達できないため、
ORA-12543: TNS:destination host unreachable
エラーとなります。
[oracle@node1 ~]$ time (sqlplus -l APP_USER/oracle@10.0.2.16:1521/pdb1.local) SQL*Plus: Release 19.0.0.0.0 - Production on Sat Feb 13 16:13:30 2021 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. ERROR: ORA-12543: TNS:destination host unreachable SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus real 0m3.089s user 0m0.009s sys 0m0.007s
node2のVIPは node1へFailoverしていますが、
node1のリスナーはnode2-vipではLISTENしていないため、
ORA-12541: TNS:no listener
エラーとなります。
time (sqlplus -l APP_USER/oracle@10.0.2.18:1521/pdb1.local) SQL*Plus: Release 19.0.0.0.0 - Production on Sat Feb 13 16:17:09 2021 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. ERROR: ORA-12541: TNS:no listener SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus real 0m0.033s user 0m0.009s sys 0m0.013s
それぞれ5回計測し、その時の realの値のみ抜粋しています。
総じて、物理IPへ接続を試行した方がエラーとるまでに時間がかかりました。
理由は、物理IPを指定した場合はTCP接続がエラーとなるまで待機してからClientにエラーが返るのに対し、VIPを指定した場合は、node2-vipはnode1にFailoverしているため、パケットはnode1へ到達し、そこでLISTNERがLISTNERが存在しない事に気きエラーとなるからです。
## node2の物理IPへ --- $ time (sqlplus -l APP_USER/oracle@10.0.2.16:1521/pdb1.local) --- 1. real 0m3.089s 2. real 0m1.683s 3. real 0m0.224s 4. real 0m3.093s 5. real 0m1.087s ## node2のVIPへ --- $ time (sqlplus -l APP_USER/oracle@10.0.2.18:1521/pdb1.local) --- 1. real 0m0.033s 2. real 0m0.032s 3. real 0m0.025s 4. real 0m0.024s 5. real 0m0.028s
Oracle RACで接続先に物理IPを指定した場合、接続エラーとなるまでの時間が長い事が確認できました。
接続文字列でFAILOVERを有効にしていれば、障害時も正常nodeへ接続Failoverする事ができますが、仮に物理IPを指定していた場合、TCP応答が返り接続エラーとなってからFailoverするため、新規接続に時間を要する事になります。
物理IPを指定した場合は、もう少し時間がかる(TCP接続timeoutの60s)ことを期待していましたが、それよりは、かなり早い結果となりました。
これは、検証を実施した環境ではTCP timeoutまで待機せずとも、物理IPへ接続できない事が確認されたため、その時点でエラーとなったものと想像しています。
こちらの資料が、Failoverの説明としても分かり易いです。
基本からわかる!高性能×高可用性データベースシステムの作り方 第4回 高可用性構成でのOracle Net構成(1) | Oracle Technology Network Japan Blog
他、記事と関係ないですが、
使いこなす機能が増えたら、書き足していく予定です
筐体を組み立てて、HDDを挿して、インターネット越しにDSMインストール。 細かい手順が記憶に残らない程度には簡単でした(忘れました)
Webベースでこんな感じ
他にも良いやりかたが、あるとは思うので模索中....
使うコマンドめも
-- 追記で開始 PS > Start-Transcript log -append トランスクリプトが開始されました。出力ファイル: log -- 終了 PS > Stop-Transcript
PS> <some command> | out-file "log" -width 400 -append
PS> Get-ChildItem "<対象パス>" -Recurse | select-object fullname