Posts tagged ‘affordable cloud storage’

ローカルでないバックアップは、duplicacyでクラウドストレージBackblaze B2 (以下、B2)とGoogle Cloud Storage Archive (以下、GCSA)に保存している。先日、そのB2の安価な代替が見つかった。

とは言え、現在B2に入れているデータ量は約75GBと とても少なく、月額料金はUSD 1未満(例: USD 0.4)なので、移行する必要性はない。

ちなみに、B2は月額料金が余りに安い場合は請求を延期するようだ(先月の請求が なかった)。クレジットカードの手数料が高く付くからだろうか。そのうち、「使用量が小さ過ぎるので、もっと使わないと退会になります」とか言われなければいいがw

それはiDrive e2で、ストレージの単価がUSD 0.004/GB/月※と、B2のUSD 0.005/GB/月より少し安い。それよりも魅力的なのは、ストレージの処理・操作やデータ転送が無料*なことだ。一方、B2は処理・操作回数やダウンロードデータ量に応じて課金される。

※年払いの1TBのプラン(料金: USD 40)では、USD 0.0033/GB/月相当になる。なお、このプランの初年の料金はUSD 4である。

*ダウンロードに関しては、「通常の範囲で」("good fit")のような制限がある。具体的には、保存しているデータ量の3倍までならOKで、普通に使うには充分そうだ。

データ転送が基本的に無料であれば、(滅多にないし、やりたくないが、)リストアが気軽にできる。

とは言え、90%以上(約1TB)のデータはGCSAに入っているので、フルリストアの費用は安くならない(GCSAからのダウンロードは超高い!)。が、今 B2に入れている基本的・アクティブな部分のリストアが無料になるのは、それなりにありがたい気がする。

また、具体的な案はないが、バックアップ以外の用途にも使えるかも知れない。

それから、細かいけど、10GB/月まで無料なのもありがたい。B2は、最初の試用期間が過ぎたら全部課金される。

こうして比べると、(今となっては)B2のセコさが目立つ。昔は他がなかった(高いAWSやGoogleなどが相手だった)ので良かったのだが、それに胡座をかいている(実際は そうではないのだろうが)うちに追い越されてしまうのではないか?

B2はアーカイブもやってないし、もう少し周りを見てアップデートする気はないのだろうか? 先日上場して一段落したのか、それで余り冒険ができなくなったのか。

「悪くないな」と思ったのだが、実はiDriveはB2にする前に少し試して止めたのを思い出した。が、それはe2とは異なるもので、ファイルベースのバックアップ用ストレージだった。e2はオブジェクトストレージというもので、基本的にブロック単位で格納するため、ファイルシステム的な機能は余りない。

気になる点は、速度、セキュリティ、使い勝手、継続性などであるが、多くは使ってみないと分からない。

以前の記録を見たところ、上記のファイルベースのiDriveは速かったようだ。ただ、ファイルシステムがWindowsを前提にしていてLinuxから使うには不便だった(例: sym-linkがない)ので止めた。

上述のように、e2はオブジェクトストレージなので、ファイルをブロック化してバックアップするduplicacyから使う分にはファイルシステム的な問題はない。

なので、今は いろいろ延期しまくっているTODOがあるものの、おいおい試してみたい。丁度、先日書いたKopiaというバックアップソフトも試したいので、それで使ってみたい。10GBまで無料なので気軽に試せるのがいい。

 

てな訳で、充分良いと思って使っていたB2ですら他に取って代わられる可能性が出るなど、クラウド関係のサービスは常時変わっていて、時々でもチェックしていれば 安くていいものが見付かることがある。※ が、一方で、新しいサービスがすぐに終わるということもあるので、そこら辺の見極めも重要だ。と言っても、外から事前に分かるものでもないので、いつでも乗り換えられるような仕組みや体制にしておくのがいいのだろう。

※ソフトも同様に、(僕の中では 設定が面倒臭くて謎の多い)duplicacyがKopiaに取って代わられる可能性がある。

  • IDrive Cloud Backup

    IDrive Cloud Backup

    Enterprise Class Cloud Backup for PCs, Macs, Serve…

  • Kopia

    Kopia

    Fast and Secure Open-Source Backup Software for Wi…

  •  1
  •  0
Keys: , , ,

Backblaze B2とGoogle Cloud Storage (GCS) Archiveへの(手動)階層化バックアップの定常運用を開始してから約1か月経った。手短かに書くと問題はない。「軌道に乗った」という感じだ。GCSの料金は、見積もりどおり通常(アイドル)時は約4円/日(保存データ量は約910GiB)で、11月は2回追加バックアップ(+その準備と確認)をしたために少し増えて137円だった。

以下に気付いたことを書く。

  • やっぱり、バックアップの漏れ(B2にもGCSにもバックアップされないもの)があった。
    • 面倒だけどチェックしたら分かった。 → チェックは重要だ。
    • 今後も(ちょっとした)バックアップ対象の変更のたびに漏れは出そうなので、それをいかに防ぐかが課題だ。
  • なぜか、B2へのバックアップデータ量(有効データ量)を減らしても、データ使用量が減らない。
    • 現在は、 全体のデータ量は有効データ量の約2倍にもなっていて、チャンク化によるオーバヘッドによるとは考えられない。
    • バックアップ対象のファイルを何度も更新しているため、バックアップデータのフラグメンテーションのようなものが起こっているのかも知れない。
      • 原因を以下のように推測している。
        1. 最初は隣り合った小さいファイルがまとまってチャンク(サイズ: 数MB前後)に格納されるが、
        2. バックアップファイルの更新を繰り返すと、チャンクが部分的に有効になっている(「歯抜け」)状態になり、
        3. そういうチャンクが増えると、
        4. 有効データ量が減ってもデータ使用量が減らないのではないか。
      • → 来年5月頃のprune(変更履歴の削除)でも減らないなら、全体をバックアップし直すことを考えている。
        • GCSと違い、B2へのバックアップは ほとんどコストが掛からないので、時間や手間だけの問題である。
  • GCS(GCP)のトライアル分クレジット(約3万円)が全然消化できない。
    • 開始(ユーザー登録)から90日で消滅するが、まだ29600円くらい余っているので、なんか惜しい。
    • かと言って、いろいろな処理をさせるのは面倒だし、させたいこともない。下手すると使い過ぎてしまうw
  •  USD-JPYの相場で料金が変動するので、近頃は気になる。
    • そもそもUSD 1/月前後と少額なので、少々変動しても大きな問題はないが、(特に額が増えた時は)「見積もりからズレた」(実際にはズレてないのだが)という気分の悪さがある。
    • これに関連して、GCSのコンソールは料金を円建てでしか表示できないのが不便だ。
      • 支払いは円でいいが、単価はUSDなのだから、まず その正確な額・量を知りたいではないか。
      • GoogleのUSD-JPYのレートだって、明示されているかというと そうでもないし(いろいろ調べれば分かるのだろうが・・・)、いつ(毎日? 毎月?)レートが変わるのかも分からず、なんか不便だ。
        • その点、B2(Backblaze)は一貫してUSDで、支払いの時にカード会社のレートが適用されるから明快で良い。
  •  0
  •  0
Keys: , , , , ,

数日前に、Backblaze B2(以下、B2)中の もう更新しない(であろう)データをGoole Cloud Storage (Archive) (以下、GCS)に移動する設定を追加して、10日くらい前からほぼ「定常運用」をして居る。以下のグラフを見て分かるように、操作数・データ量などや料金は落ち着いている。

保存しているだけで何もしないなら、毎日、保存データ量分の料金(現状は4円)だけが増える。更新チェック(約3回で1円, 1日1回実施している)や追加バックアップ(量と回数による。: 下を参照)をすると、その分が追加される。

今までに分かったことなどを書く。

  • データ移動(B2→GCS)関係
    • バックアップ対象設定の変更で、B2のデータがGCSに移動するか(B2の保存データ量が減るか)? → Yes.: duplicacy check -statusで各リビジョン(履歴)のデータ量が分かり、将来のprune(不要データの削除処理)で減ることが分かった。
    • 一度に大量に(全部)減らすとpruneに時間が掛かるのと、失敗した場合に大変なので2回に分けて減らすことにした。今のB2のデータ量は約270GBで、来月にもう一度、約270GB分を減らす設定をする。
      • 上を合わせるとB2の残りが0になってしまうが、集計の誤差や重複排除の影響があるため、そうはならない。ただ、残りは かなり少なくなるはずである。
  • GCSのコスト関係
    • ストレージだけの料金の見積もり: 1651円(USD 14.8)/年, 138円(USD 1.23)/月
      • データ量を1TBとし、USD 1= 112円とした。
      • 単価: 0.134円(USD 0.0012)/GB・月
    • バックアップ対象ファイルのチェック(更新チェック)の料金の概算: 3回で1円くらい。 → 約10円/月
    • バックアップ(アップロード)の料金: 推定: 約5円/回(ストレージのチェック) + 約1円/GB
    • 定期更新チェック(1回/日)と追加バックアップ分を含めた年間料金・単価の試算
      • 既存1TB, 追加バックアップなし
        • 支払い額: ストレージ: 1651円 + 更新チェック: 120(30/3*12)円= 1771円(USD 15.8)/年
        • 総合単価: 0.144円 (USD 0.00129)/GB・月
      • 既存1TB + 追加100GB/年 (1回で追加)
        • 支払い額: ストレージ: 1813円 + 更新チェック: 120円 + バックアップ: 105(5+100*1)円= 2038円(USD 18.2)/年
        • 総合単価: 0.151円 (USD 0.00135)/GB・月
      • 既存1TB + 追加100GB/年 (10回で追加)
        • 支払い額: ストレージ: 1813円 + 更新チェック: 120円 + バックアップ: 155(5*10+100)円= 2088円(USD 18.6)/年
        • 総合単価: 0.155円 (USD 0.00138)/GB・月
      • 既存1TB + 追加500GB/年 (1回で追加)
        • 支払い額: ストレージ: 2458円 + 更新チェック: 120円 + バックアップ: 505(5+500*1)円= 3083 (USD 27.5)円/年
        • 総合単価: 0.251円 (USD 0.00224)/GB・月
      • 上より、追加料金はバックアップのデータ量が効くので、回数が多過ぎなければ(例: 月に1回以下)小まめにしても良さそうだ。ただ、「100MBを10回」のように細かいものは割に合わない。例えば、1回10GB以上がいいのではないか。
    • 料金はUSD建てのため、実際の支払額は為替相場に影響される。円が大幅に安くなると困るが、さすがに2倍にはならないだろう・・・
      • Googleのレートは毎日変わっている訳ではないので、毎月更新のようだ。
  • 運用関係
    • B2→GCSの移動対象ファイル・ディレクトリの追加の仕方: 以下のようにすることで、毎年GCSに移すものが増えても、バックアップ対象の設定(duplicacyではfilters)を変えなくて済むようにした。
      1. 移動対象を同じディレクトリに作成した"Archived"ディレクトリに移動する。
        • B2: パターン「Archivedという名前のディレクトリ」をバックアップ対象外にしておく。
          • パターンの例: e:(.+/)?Archived/
            • 注: 設定ファイル内での他のパターンとの順序関係で有効性が変わる。下も同じ。
        • GCS: 同Archivedをバックアップ対象にしておく。
          • パターンの例: i:(.+/)?Archived/
      2. 移動したものを書き込み不可にする。(意図せず変更しないようにするため)
      3. 元のディレクトリにArchivedからのsym-linkを作成する。
    • 数日前に、ストレージに保存されているduplicacyの設定ファイル(config)のストレージクラスをStandardにしてみた。
      • 更新チェックやバックアップのたびにストレージからダウンロードされるので、Archiveクラスだと ストレージ操作やデータ取得の単価が高く(約10倍)、わずかに料金がかさむため。
      • configのサイズはとても小さい(< 1KB)ので、Standardクラスの料金は毎月の無料枠(5GB・月)内に収まる。
      • これにより、更新チェックの料金(現状は約10円/月)が更に下がることが期待できる。
    • 問題など
      • バックアップ先がB2とGCSの2箇所になるので、リストアが面倒(どちらにあるか・どちらからリストアすべきかを考える必要がある)。
        • まずB2で試し、なかったりArchivedに入っていたらGCSからリストアする。
      • バックアップ対象設定を誤る(例: 設定が非対称)と両方にバックアップされず、いざという時にリストアできない可能性があるので、注意・確認が必要。
      • B2とGCSでバックアップのトップディレクトリが異なるので、間違えやすい。
      • バックアップ(HDD)を整理しようとして本物を削除してしまい、B2のバックアップからリストアして復旧できた。
  •  0
  •  0
Keys: , , , , , , ,

いつものように四苦八苦しつつも(そのため、気付いたら前回から10日も過ぎて居た)、昨日、Google Cloud Storage (Archive) (以下、GCS)への初期バックアップが終わった。約一週間掛かりだった。途中で欲が出て、予定していた音楽のファイル以外に古い写真や本など いろいろ追加したため、データ量は予定の2倍の約900GBになった。

というのは、あとにも書くが、滅多にアクセス・変更しないのであれば、現在使っているBackblaze B2(以下、B2)より維持費(アイドル時の料金)がずっと安く済むので、その分、多くのデータを保存できるからだ。

以下に、これまでに分かったことや印象・感想などを書く。

  • 信頼性(GCS + duplicacy): なぜか変な問題が起こったが、(おそらくの)原因が分かって再発しなくなった。
    • 現象: チャンク(ファイルを分割したファイル)が1個なくなった。 (→ その後、問題発生時には同時アップロードスレッド数分なくなることが分かった。)
      • バックアップ時にduplicacyやGCSからエラーは出ていなかった。
      • そのチャンクは確かにGCSになかった。
    • いろいろ調べて何とか復旧した。 (→ 参照)
      • 簡単だけど面倒だ。
    • ただ、今まで(ストレージがB2の場合)は起こっていなかったので、どうしてか気になった。相性問題?
      • チャンク約6万個のうちの1個で 低い確率ではあったが、「滅多に起こらない」とは言えない。
      • 現象は異なるが、サーバからB2にバックアップしたもののprune時に たまに「チャンクがない」エラーが起こっていたので、duplicacyに問題があるのかも知れない。
        • この問題は、B2のメンテ中にアップロード(バックアップ)したせいで起こっている(やっぱり、サーバからのエラーがduplicacyに伝わってない?)と想像し、定期メンテ中のアップロードを避けるようにして様子を見ている。
      • → いろいろ調べたら、データをアップロードしているPCの一時IPv6アドレス(temporary IPv6 address)の更新の影響のようだった。
        • 直接の原因は自分で変えた設定が不適切だったことだが、他のプログラムは今まで問題なく動いていたので、そればかりとは言えない。 → 詳細は下記 「一時IPv6アドレスの更新の影響について」を参照のこと
    • → 一回だけでなく再発したので、チャンクサイズをデフォルトにして試したが、効果はなかった(やはり再発した)。
      • アップロード速度が低下したが、バックアップのスレッド数を6に増やしたら、家のVDSLのアップロードの最高速度近くの32Mbps前後まで出るようになった。
    • duplicacyは、このような問題をcheckコマンドで検出できるのがいい。
      • rclone(ファイル単位でバックアップする)だったら おそらく通信エラーになると思うが、(duplicacyと同様に)エラーにならずにファイルの全部または一部がなくなったり、異常になったりする可能性もある。それは(何もしなかったら)バックアップ直後には検出できなので、リストア時に途方に暮れることになる。
        • バックアップ後にチェックするにしても、rcloneは管理情報は持っていないので、自分で、バックアップしたファイルがストレージにあるか調べる必要があり、なかなか面倒だ。まあ、rcloneをdry-runモード(あれば)で動かせば、ファイルの有無とサイズの違いは分かるだろうが、おそらくduplicacyより高く付きそうだ。あと、中身の異常までは分からない(それはduplicacyも同じ)。
    • 上の問題の他は、バックアップしたファイルの抜けや一部をリストアして中身をチェックをしたらOKだったので、(当然のことながら)信頼できそうだ。
      • こんなところで駄目だったら、世界中のユーザーが叩くに違いない。そもそも、そんなのはGoogleでない。
  • 有用性: やっぱり(僕には)バックアップは必要不可欠だった。
    • バックアップのチェック中に誤って本物のファイルに上書きしてしまい、いくつかサイズを0にしたり変な名前のファイルを作ってしまった。
      • 原因: awkの使い方の失敗: 一時ファイル名がおかしくて上書きしたようだ。
        • 変な名前は空白のあるファイル名が分割されてしまった。
    • → でも、早速GCSからリストアして復旧できたので「セーフ」だった^^
      • 手元のバックアップHDDからでも良かったが、試しにやってみた。
  • 料金: GCSとB2を併用した場合、通常(アイドル)時は現状(B2のみ)から4割(100円/月)近く安くなるはず。
    • 連日、コンソールを頻繁にチェックして、更新・集計のタイミングや内訳が分かり、ある程度、料金表に合う額が計算できるようになった。
      • 料金(Report)は1日2回以上更新される。
        • 項目によって更新時期・頻度が異なるようだ。
        • 内訳は金額(円)でしか出ない(データ量などは出ない)ので不便。
      • 操作の回数、送受信データ量などは、モニター(Monitoring)で ほぼリアルタイムに更新される。
        • ただし、全データ量とオブジェクト数が更新されるのは1日1回。
    • 事前の見積もりどおり、1TBのリストアをすると約2.1万円になるだろう。
      • 安くはないが、保険だし、データに値段はないので仕方ないだろう。
      • それに、維持のための料金を払える限り、一度に全部リストアする必要はないので、そうすれは安くなる。
    • 現状(初期バックアップ完了後, 10/14 10時頃)の使用量と料金
      • 使用日数: 約13日間 (約半分は試行錯誤)
      • 格納データ量: 約900GB
      • 削除したデータ量: 約700GB (試行錯誤のため)
      • 操作数: 約28万
        • Class A (主にWriteObject): 約26万
        • Class B (主にGetObjectMetadata, ListObjects): 約2.4万
      • GCSの送信データ量(≒ ダウンロード(リストア)データ量): 約13.5GB
      • GCSの受信データ量(≒ アップロード(バックアップ)データ量): 約1.6TB
      • 料金: 3055円: 以下に内訳
        • Class A操作(書き込み系): 1525円
        • Class B操作(読み出し系): 90円
        • データ取得: 90円
        • データ格納(us-west1): 31円
        • データの早期削除: 1161円
        • データのNW転送(ダウンロード): 158円
        • ※書き込み系操作と早期削除(どちらも試行錯誤を含む)が大半で、通常(アイドル)時はデータ格納以外は掛からない。
      • ※データ量の単位にはGiB, TiB(1024系)とGB, TB(SI系)の2系統があるが、いろいろな箇所・場合・プログラムで異なっていて換算や記載が煩雑なので、ここでは特に区別せず、大まかに"GB"などと書き、特に必要な場合だけ厳密に扱う。
    • 今後の予測・見積もり (USD 1= 112円とした)
      • GCSのアイドル時の予測額(月額): USD 約1.1 (約121円)
        • 格納データ量: 約900GB
      • B2: GCSへのデータの一部移行後の予測額(月額): USD 約0.24 (約27円)
        • 移行後のB2の格納データ量: 約48GB
          • 約412GBをGCSに移行すると見積った。
        • 従来
          • 月額: USD 約2.2 (約246円)
          • 格納データ量: 約460GB
      • 合計の予測額(月額): USD 約1.3 (約150円)
        • 現状の約246円(B2のみ)との差: 約-96円
  • duplicacyの処理・設定: 結構手間が掛かったが、いろいろ分かったことがある。
    • チャンクサイズ
      • 大きくしてみたが、重複排除効率が下がるとのことなので、大きく(平均10MB)しないほうが良かったかも知れない。
        • 効率は大差ないとは思うし、料金も大差なさそうだ。
          • データ取り出しとNW送信が高いので。
        • バックアップしてからのサイズ変更はできない。
      • → その後、上記のチャンク消失問題の原因かも知れないと思って、デフォルト(平均4MB)に戻した(実際には無関係だった)。
      • 平均チャンクサイズと実際のファイルサイズの関係
        • 全データ量: 994,100MB, ファイル数: 332176, チャンク数: 202070
          • 平均ファイルサイズ: 3.0MB
          • 平均チャンクサイズ: 4.9MB
        • → チャンク化によって、ストレージの使用効率が約1.6倍になったと思われる。ただ、ブロック数でなく実サイズで課金されるので、料金には関係しない。
      • 重複排除の効果(実際のデータ量とストレージに保存されたデータ量の関係)
        • バックアップしたデータ量: 993,910MiB, ストレージに保存されたデータ量(チャンクの総データ量): 917,429MiB
          • 差: 約75GiB, 重複排除率: 約7.7%
        • バックアップの経過(duplicacyの出力)を眺めていたら、重複排除が効いている場合もあった(例: アップロードサイズが約1割減)が、全体としては余り効いていないようだ。
      • ※ここでのデータ量はduplicacyの出す値(表示は"MB"だがMiB系のようだ)で、単位系または処理が異なるせいか、他とは一致しない。
    • フィルタ(バックアップ・除外パターン)の設定
      • 強力だが、理解不能な癖みたいなものがあって設定が面倒。
        • 予行(dry-run)機能で試せるので、何度も試しては修正した。
      • ただ、もう少し機能があるといい。
        • 例: 更新日時でバックアップ対象にするかどうか。
    • prune処理について
      • pruneを行って不要になったチャンクを削除すると使用データ量が減って料金が下がるが、GCSの使用データ量の料金は安い反面、早期削除やアクセスの料金が高い(数十倍!)ので割に合わない。使用データ量がそれほど大きくないなら、なるべくpruneしないほうが得策だと思う。
    • 日頃のバックアップの必要性のチェック方法
      • duplicacyのバックアップの予行(dry-run)機能でバックアップ(アップロード)されるファイルが表示されてファイル更新の有無が分かるので、それを定期的(1日に1回)に自動実行し、結果を見て必要だと思ったら手でバックアップすることにした。
        • このチェックにもアクセス料金が掛かるが、今まで見たところでは それほど高くないので、頻繁過ぎなければ大丈夫そうだ。
      • ちなみに、B2へのバックアップは、基本的に上と同様に(dry-runでない)バックアップを定期的(約8時間間隔)に自動実行している。
        • ただ、PCのスリープや再起動に影響されずにバックアップの間隔をなるべく一定にしたいのと、バックアップ後にチェックをするのと、バックアップ以外にprune(2種類)を別な長い間隔(約1日, 約2週間)で行うのと、バックアップが長引いた場合に同時にpruneを実行しない(その逆も)ようにしているので、実際にはちょっと複雑な自作のスクリプトを使っている。
  • その他
    • 光回線でないと(無線では)、こういうバックアップはできなかった(ちょっと する気になれない)。
      • 初期(試行も)バックアップ中のデータ量の変化(グラフの下向きがアップロード)は、以下のように、今までにない すごい傾きだ。普通の4G無線で、一週間くらい こういう通信を安定してできるだろうか?
      • GCSに初期バックアップ中の送受信データ量: 上: 受信, 下: 送信; 左上から右下へ: 日, 週, 月, 年

    • ただ、家はVDSLのためアップロード速度が遅い(最大約35Mbps)のが残念だ。
      • もしアップロードも速かったら、初期バックアップは2-3日で終わっただろう(ただ、僕の準備・処理が間に合わなかったかも)。
    • GCS(Archive)は、アクセス・書き換え・削除などせず、ただファイルを追加していくだけなら安いうえに、他のクラウド アーカイブ ストレージと違って「普通に」使える(ただし高い)から結構いいと思う。
      • 以前書いたように、WORMメディアやテープのイメージで、基本的に書き込んだら放置だけど、ちょっとお金を「はずめば」普通に使えるのがいい。面倒な解凍処理が必要で半日も待たされる他のクラウド アーカイブ ストレージにはない大きなメリットだ。
      • アクセスやNW転送(ダウンロード)の料金が下がれば言うことないが・・・
      • あと、webコンソールを もう少しまともにしてくれれば・・・
        • その他、細かいこといろいろw
      • それから、Googleらしく「止めた」とか値上げとかがないことを祈るw
    • GCS(Archive)の料金は試用クレジットの約3万円に比べて概ね安いので、最初の試行や初期バックアップには充分過ぎるくらいだ(まだ9割くらい残って居る)。やりたくないが、何回でも最初からやり直せるw

 

という訳で、目論見・見積もりが合っていれば、「保存データ量倍増、料金4割減」(→ コストパフォーマンスは3.3倍?)という うれしいことになるはずだが、果たしてどうなるか。(何もしなければ変わらないだろうが)1-2か月は頻繁に料金をチェックし、大丈夫そうならB2のデータをGCSに移行(実際には、移行するファイルをB2へのバックアップ対象から外す)したい。※

※頻繁に変更するデータをB2に残し、そうでないものをGCSに移す。

移行後はB2の月額が1ドル未満になる予定だが、それはちゃんと請求されるのか、変な心配はあるw

そして、もし移行してから失敗に気付いたとしても大丈夫だ。というのは、duplicacyは履歴を保存するので、設定した期間(僕の場合、約半年)は削除済みのデータが残って居るからだ(そのため、その間は料金は安くならない)。

いざという時に、その残って居る履歴を期限で消さないようにできるのか不明だが、まあできるだろう。少なくとも、pruneしなければ消えない。

残件としては、前回書いたように、「まっさら」な状態からのリストアの手順を検討・試行をすることと、作成または更新年が新しいのでGCSにバックアップしないようにしたファイルを、定期的に(毎年)バックアップ対象に追加する(= B2からの移行)※ことがある。

※きっと、こんな作業を自動的に行う階層的ストレージ管理ソフトはあるのだろうが、エンタープライズ用で「お高い」だろうし、使うのも面倒なんだろうと思うが、実際はどうなんだろう。実はフリーであったりするのか?

 

一時IPv6アドレスの更新の影響について

IPv6のIPアドレスは固有(一応、全世界で1個)のため、プライバシーを保護するために(IPv6 privacy extension)、有効期限付きの一時アドレスというものを短期間(Linuxでは通常は1日)で変えながら使う(そうでない設定も可能)。その期限("temp_prefered_lft" (sic))が切れると、一時アドレスが更新されて変わる。ただ、古いアドレスが即座に無効になると通信が切れて問題があるので、しばらく(Linuxでは通常は6日: 最終的な期限("temp_valid_lft")の7日-上記の1日)は使えるようになっているようだ。(ここは動作からの推測)

Linuxの一時IPv6アドレスの更新処理 (推測)

  1. システム起動時やNW IFの初期化時に、新しい一時アドレスが生成・割り当てられる。
    • そのアドレスは、preferred_lftが0になるまで新しい通信に使われる。
  2. preferred_lftが0になった(deprecated状態)は、valid_lftが0になるまで残る。
    • そのため、通信中にアドレス更新があっても、当面は問題は起こらない。
    • ただ、そのまま延々と通信を続けた場合、valid_lftが0になった時点でアドレスがなくなるので、問題が起こる。 → 通信できなくなる?

なお、preferred_lftやvalid_lftが減るのはLinuxが動いている間だけで、スリープなどで止まっている間は減らない。また、再起動でどうなるかは不明。

当初、僕は そこを理解していなかったため(一時アドレスの設定方法については情報があるが、動作や2つの期限の違いの詳細については見付からなかった)、期限が切れても無効になったアドレスが引き続き残って居るのを見て、ちゃんと動いていないと思い、temp_valid_lftとtemp_prefered_lftを同じ1日(86400秒)にしてしまった。そうすれば、実際に毎日の期限でアドレスがガラッと変わって気持ちが良かったのだが、上記のようにアドレス更新されるとそれまでのアドレスが無効になってしまっていた。

ただ、その瞬間に通信している場面が少なかったのか、あるいは、多くのプログラムが そういう通信エラーにちゃんと対処していたためか、何も問題が起こらなかったが、duplicacy+GCSだけは違っていた。たまたま見ていた時にアドレス更新が起こったら(あとでそうだったと推測した)、しばらく(30秒-1分?)アップロードが停まり(リトライしていた?)、その時にアップロードしていたと思われる(本当にそのものかの確認はできていない)チャンクが消失した。duplicacyはエラーを出していなかったので、通信できなくなる前にGCSから成功が返って来たのか、duplicacyの通信エラー検出・対策に不備がある可能性が考えられる。

この問題をduplicacyの作者に報告したほうがいいが、そもそも設定ミスに起因するのと、再現させるのに手間が掛かるし、GCSとの相性の可能性もある(B2に対しては起こったことがない)ので保留している。

これに対処するには、まずはLinuxの一時アドレスの設定を「ちゃんとする」ことで、デフォルト(temp_valid_lft= 7日, temp_prefered_lft= 1日)に戻したら問題は起こらなくなった。ただ、可能性として、以下の場合は問題が起こるのではないか(待つのに疲れたので、実際には確認していない)。

  1. 一時アドレスの更新(temp_prefered_lft)時刻の少し前にduplicacyでバックアップを開始し、
  2. temp_valid_lftの期限が過ぎてもバックアップが終わらない。

この対処(予防)のために、duplicacyでのバックアップ開始前に、一時アドレスの設定を変更して固定にし(例: use_tempaddrを1にする)、バックアップ終了後に設定を戻すことを考え、そのスクリプトを作るつもりだったのだが、その前に設定をちゃんとして試していたら(バックアップの残量が少なかったため)問題が再発することなく初期バックアップが全部終わってしまったので、スクリプトは作らず仕舞いである。

ただ、今後(忘れた頃に)問題が起こる可能性があるので、バックアップ開始前に一時アドレスの有効期限(temp_valid_lft)を調べて、途中で切れそうだったら(バックアップ量によるが、暫定で1.5日にしている)メッセージを出してエラーにするようにした。

 

こぼれ話 (Azure(日本MS)を大いにディスる)

以上の話とは全く関係ないが、Azure(日本MS)はトライアルの使用状況を聞くために電話(マジで!)を掛けてくるというアフォさ。その連絡メールは、「いつがいいか知らせろ。返事しない場合はテキトーに掛けるよ」(意訳)で、「は????」としか言いようがない。

こっちは、何もしてないのに規約違反のアクティビティを検知したとかでアカウントがロックされたままで使いようがないのに、そういうことを調べもせず ただ電話すればいいという、昭和的馬鹿営業の極み。掛かって来たらブロックするのが楽しみだ。

電話で、ロックの件やAzureが使いにくいとか言うのも可能だろうが、大抵その場の「なるほど」、「検討します」だけで何も変わらず(というのは、そういうのは向こうの期待する回答じゃないため)、こっちが対応する労力が無駄なことが分かっているのでしない。

→ と書いたら、書き終わる前に(上の「いつがいいか」のメールが来た数時間後(同じ日)に)掛けて来た。留守電の声は新人らしいが、本当に非常識なヴァカだった(上司の命令どおりのことをしているだけなのか)。待ってましたとばかりにブロックリストに入れた。ヒヒヒ。って、性格悪いな。

それにしても、そんなことまで入会時に承諾したつもりはないが、(ちゃんと読まなかった)規約に書いてあったのだろうか。ただ、メールに定例の「以後、不要な場合は−」のような文言すらなかったので、日本MSのクソ意識の低さを再確認した。

バカジャネーノ!

もちろん、一応試したけど未だにロックされていてサインインできず退会できないから、試用期間が終わるのを待つしかない。こんなのを ほんのわずか(1μgくらい)にでも使えるかと思って試した僕は、本当のクソだ。

→ (10/15 9:36) 良く考えたら、アカウントを放置したら、試用期間が終わったら残ったデータに課金される可能性があるから、退会した。それがすごく分かりにくく面倒だった。

最初はMicrosoftアカウントを削除するだけでいいと思ったのでそうしたが、アカウントが削除されるまでに待機期間(30または60日)があり、その前に試用期間が終わったら課金されてしまうので、一旦アカウントを復活させてストレージのデータを削除した。更に、MSのページによれば、Azureのサブスクリプションを解除する必要もあるとのことなのでそうした。カード情報の削除は アナログな方法でしか削除できず面倒なので、放置した。さすがに退会すれば使われないだろう。

もう二度と入りたくない!

 

PS. それにしても、データ量1TB、使用料月額約1ドルなんてゴミ誤差みたいなもので、他の大規模ユーザの隙間に生きるような感じだw そういうユーザが居るからこそ、僕のような趣味の者でも安価だけど高い信頼性で使えるのだ。そういう点では、GCSは(小さいほうの)スケーラビリティ(スモーラビリティ??)も高いと言えるのではないか。あるいは、銀行や政府のお金の計算のように、1円(あるいは銭)から兆以上までちゃんと扱えるってことだろう。

「兆」と書くとすごく大きく感じるが、実は1012で、データ量などではTで、実はそれほどでもない。PやEなどを扱うITの世界は、お金の計算を超越しているのだろうか?

そういえば、僕のスマフォの契約も500MB/月と似たような領域だ(爆) こういう技術(かどうか分からないが)も きっと何かに役立つはずだ。

こういう細かいのは米粒に文字を書くとか豆本とかの日本のお家芸みたいで好きじゃないが、それ自体を目的とする訳でなく、遊びとか興味を嵩じさせてやるのなら いいのではないかな?

あと、この場合、豆本に相当するのは、大きなデータをいかに圧縮するかみたいなことだと思う。そういうのは使いにくいし、情報量を落とす(非可逆圧縮)場合もあって本末転倒なので全く興味がない。この類の いい(悪い)例はi-modeだ。

 

(11/15 14:50 重複排除の効果の項を修正, 10/17 18:51 わずかに加筆)

  •  1
  •  0
Keys: , , , , , , , ,

先日から試している、長期間変更しないデータのGoogle Cloud Storage(以下、GCS)でのアーカイブ保存(バックアップ)。やってみないと分からないことは多いもので、予想していなかったことが いろいろあった。

バックアップ方法 (使用プログラム・設定)

当初はrcloneで始めたのだが、使っているうちに少し不満な点が出た。Sym-linkに対応していないことである。当初は それほど使っていないと思って、(例えばバックアップ時にsym-link一覧も保存し、)リストアする時にでも対処すればいいと思って居たのだが、実は結構使っていた。音楽についてはそうでもないが、写真(当初は予定していなかったが、古いものは対象にしたくなった)では多用していることに気付いた。

書いたあとで思い付いたが、バックアップ時に(一覧でなく)sym-linkだけを格納したtarを一緒に保存すればいいかも知れない。これなら、面倒な作業やスクリプトなどが要らず、コマンド一発で復元できる。ちょっと考えよう。 (17:39)

スクリプトを作れば いくらでも復活できるが、(それにしたって動作確認やデバッグは必要なので、)なるべく手間のないほうがいいと思うので、duplicacy(ファイルをチャンク(数MB程度のブロック)に分割して保存しているので、sym-linkも保存できる)を再検討した。

すると、duplicacyでは、sym-link対応の他にも、ファイルの移動や名前変更の時に再転送が不要になる場合があることが分かり※、なかなかいい感じになった。

※詳細な動作や条件は把握していないが、ファイルをブロックに分割して保存しており、同じブロックが書き込み済みなら再度書き込まない(重複排除, deduplication)ため。実際にバックアップ済みディレクトリを移動してから再度バックアップしたら、アップロードなしで済んだ。

なお、duplicacyで定期的に実行するprune(ファイルの更新・削除のために不要になったブロックを削除する)処理のコストは不明だが、ストレージ自体のコストは安いし、そもそも変更しない前提のファイルをバックアップしているので、pruneしなくてもいいかも知れない。

この辺りは昔のWORM光ディスクでの保存に似ている感じだ。

そして、昨日からduplicacyに切り替えて試していたら、新たに気になることが出た。上に書いたように、ファイルをブロックに分割するので、ブロックが小さいと書き込み・読み出し回数が増えたりストレージ内のファイル(オブジェクト)数が増えて、効率が悪くなったり料金が増えたりするのではないかということだ。試算してみると、当然ながら、ブロックが大きいほうが書き込みのコストは小さかった。

そこで、今朝、デフォルトのチャンクサイズが平均4MB(1..16MB)なのを、8MB(2..64MB)に変更して試して居る。

ただ、バックアップやリストア、それに伴うNW転送に関してはファイル数でなくデータ量に課金されるので、チャンクサイズはトータルのコストには余り効かないようだ。それでも、チャンクの管理(実際にあるかは不明: チャンク一覧やpruneの時か)のための操作数は減るので、その分のコストは下がるはずだ。あと、バックアップ速度は少し速くなった気がする。

運用コスト (料金・費用・手間)

料金をチェックしたら意外に高かった。昨日は72円で、4日目の今朝は85円になっていた。※

※絶対値としては とても安いが、まだデータ量が少ないのに予定している月額(< USD 1)を容易に超えそうな勢いなので、不安になった。

いろいろ試したせいもあるが、それでも なんか高いので調べてみたのだが、GCSは料金の内訳が出ないので、どの処理・操作が主因なか分からなかった。それで、1GBくらいをアップロード(バックアップ)した時の処理数や転送量と料金表で試算してみたが、上の料金には合わなかった。

気になったので、試しにリストア時の費用も試算した。想定している上限の約1TBをリストアする場合を計算したら、思わぬことが分かった。※ NW転送(外向き、"egress")とデータ取り出しのコストがかなり高いのだ。上に書いた、書き込み(リストアでは読み出し)操作よりずっと高い。

※上記のように自分で試算した額と請求額が合わないので、下の試算も合わない可能性があるが、データ取得と転送については合わない理由がないと思う。

以下に約1TBをリストアする場合の料金の試算結果を示す。 (USD → JPYは今は約111円のようだが、とりあえず120円とした。)

  • データ要求操作(get= Class B(USD 0.50/10000 reqs)とする)
    • duplicacyのチャンクサイズが平均10MBの場合
      - 1024 * 1024 (MB) / 10 (MB) = 104858 チャンク → 104858 /10000 * 0.50= USD 5.2
  • データ取得(アーカイブからの取り出し) (USD 0.05/GB): チャンクサイズには関係ない)
    • 1024 (GB) * 0.05= USD 51.2
  • データ転送 (Egress to Asia: USD 0.12/GB): チャンクサイズには関係ない)
    • 1024 (GB) * 0.12= USD 123
  • 合計: USD 179 → 約2.1万円

合計額もそうだが、データ転送コストの高さに驚いた(ボッタクリ??)。他社(Azure, S3)はこの数分の一(Azureは書いてなかったので無料なのかも知れないが、不明)なので、Googleは ここらでコストを回収しているのだろうか?

データ転送料金はArchiveだけでなく全クラスに共通なので、普通に使っている人は かなり高くついていそうだ。だから、実はGCSのユーザーは少ないのだろうか? そして、Googleの多くの過去のサービスのように消滅してしまう?? あるいは、電気代のように逆従量制(?)なので、大規模ユーザーが多いのか?

なお、ブロック分割しないrcloneでも同様に試算したが、データ要求操作のコストは安いものの他より1桁小さいので、合計はUSD 3程度しか安くならなかった。

それで、またAzureやS3に目が移りかけたのだが、当然ながら いいことばかりではない。次が主要な判断事項となった。

どちらがいいか?

  • リストアすることは まずないので、リストア関連料金は高くてもいい? (平常時(保存だけ)の運用コストがBackblaze B2より安ければいい?)
    • 候補: GCS
      • 即座にリストアできる。
      • duplicacyが使える。
  • リストアに手間や時間(解凍時間)が掛かってもいいから、特にリストア時の料金が安いほうがいい?
    • 候補: S3かAzure
      • リストアできるようになるまで(「解凍」)、10時間以上掛かる。
      • duplicacyは使えない。(バックアップ時にストレージに保存されたconfigが取得できないし、(あるかは不明だが)チャンクが読めないので) → configだけクラスを変えればいいかも知れない。
      • rcloneでもファイルの属性が読めるか不明。: 実体でないから おそらくできる。
    • AzureはデフォルトのクラスをArchiveにできないので(CoolかHot)、バックアップ後に変更しなくてはならず、使いにくい。S3は不明。
    • S3やAzureでリストア時に解凍すると、クラスが上がって保存料金が高くなる(約10倍)可能性がある。
      • 短期間なら問題ないが、リストア後にクラスを戻す手間が増える。

滅多に使わないのだから、まず起こらない場合の手間を惜しまずに運用費を安くすべきなのか、そうは言ってもたまに間違いを起こして(僕は これが結構あるw)使う可能性はあるから、手軽に・間違いなく使えるほうがいいのか。  (当然ながら、今の考えは後者である。) − 悩ましいところだが、GCSの試用期間・額はたっぷりあるので、試行錯誤しながら考えたい。

余談だが、GCSの試用額(この額・枠のことを"credit"というのだろうか?)約3万円が無期限で使えれば、僕が使う予定の十年分以上になるから即座に決めるが、そんな うまい話はないwww

書いたあとで、掲示板のまとめのマイナンバーカードに関するスレッドを読んで、上の2つの選択肢はマイナンバーカードと運転免許証の関係に似ていると思った。マイナンバーカードは無料だけど、随分手間が掛かる(そもそも、さほど便利でない)。一方で運転免許証は、取る時も維持にも多少お金が掛かるけど、面倒さは少なく、手軽に幅広く便利に使える。

「どっちがいい?」と聞かれれば(聞く人すら居ないだろうが)、間違いなく後者に決まっている。

細かいこと

GCSを使っていて、(やっぱり)気になること・不満なことが出て来た。

  • 料金の詳細(内訳)が分からないのが不便。Web(コンソール)では見られない。 → コンソールのBillingのReportsの右側のフィルタを設定すると項目ごとの料金を表示できる。が、円なので使用量は分からない。逆算するにしても、正確には分からない。 (10/5 7:41)
    • B2では分かる。予測額も出る。
    • 月の料金請求時(確定時)まで分からない?
    • 料金(当日までの合計額)が出るのが遅い。: 10時頃更新?: 毎日の0:00 UTCから集計するとしたら、仕方ないか。
  • データ量などが更新されるのが1日1回なのも不便。
    • リアルタイムに出ず、更新は料金より遅い(午後3時頃?)。 (→ : 最下部の"Total bytes"と"Total ojects"が実際より小さい。: 前者は、少なくとも、右下の"Rec bytes"(≒ 書き込んだデータ量)程度はあるはずだし、実際に求めても そのとおり。)
    • B2では月1回なので、仕方ない?
  • Web(コンソール)の監視系、料金系が 今ひとつうまく動かなかったり、使いにくい場合がある(要するに、出来が悪い・詰めが甘い)。
    • Googleらしい? ここら辺はAzureのほうが良さそうな気がする。
    • B2はずっと良い(というか当たり前に使える)ので、すごい落差を感じる。

 

GCSのwebのモニタ画面 (苦労して見やすくした。)

 

希望・期待・・・

まあ、個人的に一番好ましいのは、Backblaze B2がアーカイブクラスのサービスを出してくれることだが、難しいのではないか。まず、今時テープとかありえないし(彼らも慣れてないし)クソ使いにくいので、HDDやSSDを使うとしたら、どうやって料金を下げるのだろうか。それが無理なので、今のように単一サービスで通しているのだろう。

が、何か引き換え(アーカイブは滅多にアクセス・変更しないことからの何か)があれば、実現できそうな気がする。とりあえずは、GoogleのようにNW転送料金を高くする??

通常時はストレージの電源を切っておいて、アクセス時だけonにすることも考えられる(それなら何時間も掛からない)が、信頼性が下がる可能性があるので(HDDは何年間も動かさないと固まってしまう)、余りメリットがなさそうだ。「それでもいい」という代わりに安くするのはありかも知れないが、本当に駄目になっていたらバックアップの意味がないし(それを避けるために、冗長化するとか たまに動かす?)、制御が面倒で(停めて浮いた電気代より)高く付く気もする。

 

なお、現実的な解はGCSかAzureだろう。MSは大10嫌いだが、GCS(RCP)のwebコンソールや料金(アカウンティング)関係のいい加減さには ものすごく呆れたし、みすみすぼったくられるのも嫌なので、コスト次第ではAzureも充分ある。あと、AWSはもっと試用できるようにして欲しい。まあ、そもそも彼らは僕みたいな「最大1TB」とか「月1ドル未満」なんていう超小物じゃなく、PBオーダーの人たちを相手にしているのだろうから、仕方ないとは思う。 (18:49)

ちょっと試そうとAzureにサインインしようとしたら、何も規約違反をしていないのに、なぜかアカウントがロックされていたので、Azureの検討はしない。やっぱりMSは最低だ。わずかにでも期待したのが馬鹿だった。 (19:21)

 

結局、

上記のように、Azureは「やる気あるの?」レベル(調べたら、何もしてないのにアカウントがロックされるのは良く起こるようで、Officeなどが使えなくなって困る人が多いようだ)だしS3は「一見さんお断り」なので、(他に選択肢がなくて)GCSを使うことにした。その関係で、バックアッププログラムをrcloneにする理由がほとんどなくなったので、duplicacyを使うことにした。今日から少しずつ音楽などのファイルをバックアップして、様子(特に料金)をみていく。 (10/5 10:58)

 

おまけ: duplicacyでちょっと引っ掛かったこと。

GCSのアクセストークンのファイル(例: gcs-token.json)を、ストレージの初期化時(duplicacy init実行時)に指定した場所から移動したら、エラーでアクセスできなくなってしまった。

ヘルプやドキュメントには変更の仕方が載っていなくて、また初期化が必要かと がっかりしたが、設定ファイルやPC内にはそれが格納されている気配がなく、当然、クラウド側には保存されていない(トークンがないとアクセスできない)から、どうにかしているはずだと思ってソースを見たら、分かった。

  • 初期化時に設定したパスは、LinuxではGnome keyringに格納されている。 (使っているとは思いもよらなかった。見付からないのも当然である。)
    • seahorseコマンドで変更可能。: Default keyringの"gcs_token - duplicacy"
  • また、設定ファイル(.duplicacy/profile)中の"keys"ブロックに"gcs_token"のキーでパスを書けば変更できる(duplicacy set -key X -value Yでも設定できるはずだが、試していない)。
"keys": {
  "gcs_token": "/home/user/GCS/gcs-token.json"
}
  • また、環境変数DUPLICACY_GCS_TOKEN, DUPLICACY_PASSWORDでも指定できるはず(試しては居ない)。
  •  0
  •  0
Keys: , , , , , , , , , , ,