awsS3 への移行

S3 への移行

circle-info

これらの手順は v5.x 以降向けです。もし以前のバージョンに従っている場合は、代わりに以下を使用してください sharelatex の代わりに overleaf パス名や SHARELATEX_ プレフィックスの代わりに OVERLEAF_ 環境変数として。

circle-exclamation
circle-check

このガイドは、ディスク上のストレージから S3 互換オブジェクトストレージへの移行について案内します。導入ドキュメントの該当セクションを参照しています: S3 セットアップ.

要件

  • 接続先の S3 互換オブジェクトストレージ(オプションについては次を参照してください) S3 オプションについて

  • 既存データを移行するための空きディスク容量(現在のディスクサイズ相当)

  • 実際の移行を行うためのメンテナンス時間

  • 構成を含むフルバックアップ(そこから復元できること)

移行に必要なディスクサイズを見積もる

次のコマンドを使って du 現在のディスク使用量を計算できます:

docker exec sharelatex \
  du --human-readable --max-depth=0 /var/lib/overleaf/data/user_files

docker exec sharelatex \
  du --human-readable --max-depth=0 /var/lib/overleaf/data/template_files

もし現在のサーバーに十分なディスク空きがない場合は、別のディスクをサーバーにアタッチすることを検討してください。

circle-info

history ディレクトリはすでに正しいレイアウトになっています。バインドマウントされたソースフォルダから直接アップロードできるため、追加のディスク容量は不要です。

移行手順

ステップ 0: インスタンスのシャットダウン

すべてのユーザー/テンプレートファイルが移行されるようにする必要があります。新たにアップロードされたファイルを取りこぼさないよう、インスタンスを停止するのが最良です。

シャットダウン手順については、一貫したバックアップを取得するためのガイドを参照してください。

ステップ 1: ディレクトリレイアウトの書き換え

S3 にアップロードするためにプロジェクトファイルのディレクトリレイアウトを書き換える必要があります。filestore のローカルストレージのディレクトリレイアウトは次のとおりです: <project-id>_<file-id> S3 におけるディレクトリレイアウトは次のとおりです: <project-id>/<file-id>.

以下では、 /srv/overleaf-s3-migration が新しいディレクトリレイアウトでファイルを保存するために使われます。

次のコマンドを利用できます tar でレイアウトを書き換えます:

ステップ 2: ファイルのアップロード

好みに応じて、minio mc S3 クライアントまたは aws cli を使用してファイルを S3 互換オブジェクトストレージにアップロードできます。

aws cli

circle-info
  • ここで次のものを置き換えてください overleaf-user-files, overleaf-template-files, overleaf-project-blobsoverleaf-chunks をあなたの S3 バケット名に置き換えてください。

  • また次のパスを置き換えてください /srv/overleaf-bind-mount with the local path of the /var/lib/overleaf バインドマウント。デフォルトでは、これは ~/overleaf_data docker-compose.yml のデプロイでは <toolkit-checkout>/data/overleaf Toolkit を使用している場合のパスです。

minio mc

ここではサーバーエイリアスを "s3" としていますが、別の名前にしている場合もあります。

ステップ 3: S3 を指すようにインスタンスを起動

S3 に関連するすべての変数を設定に追加してください。詳細は 変数の概要 セクションを S3arrow-up-right セットアップガイドで参照してください。

Docker Compose デプロイでは、volumes セクションからデータディレクトリのバインドマウントを削除することもできます。

circle-check

これでインスタンスを起動し、移行を検証できます:

  • エディタでバイナリファイルをプレビューできる

  • 画像付きで PDF をコンパイルできる

  • 新しいファイルをアップロードできる

ロールバック

次の手順を逆にたどることで、移行を安全にロールバックできます:

  1. インスタンスをシャットダウンする

  2. ソース/宛先の順序を反転させてファイルをミラーリングし戻す

  3. 逆向きの transform

  4. を使ってローカルディレクトリに新しいファイルを書き戻す

circle-info

--wildcards '*/*/*/*/zip"', "t130": "最初の transform は最上位フォルダを取り除きます。2 番目の transform はディレクトリレイアウトをフラットに変更します。ワイルドカードは親(プロジェクト)フォルダではなくファイルのみを抽出することを保証します。

最終更新