更新履歴

icon
 古場 正行   2020/10/12 2:40

現在との差分
History → Now CHANGED
@@ -1,12 +1,13 @@
1
1
# はじめに
2
2
- [GitLab](https://about.gitlab.com/) はバージョン 13.0 から hashed storage に対応しており、今までのストレージを legacy storage と呼んで非推奨としている。
3
3
- GitLab 13.0 以上で環境を構築してプロジェクトやリポジトリを作成した場合は既に hashed storage になっているのだが、GitLab 12.x.x 以下で環境を構築していてる場合は、当然 legacy storage で動いている。
4
- - GitLab 12.x.x 以下の環境を GitLab 13.0.0〜13.3.x に上げても legacy storage のままで動作してくれるが、GitLab 13.4.0 以上に上げると hashed storage に強制移行させられてしまう。この時、__プロジェクトのリポジトリが消えてしまうトラブル__に遭遇してしまうことがある。
4
+ - GitLab 12.x.x 以下の環境を GitLab 13.0.0〜13.3.x に上げても legacy storage のままで動作してくれるが、そこから GitLab 13.4.0 以上に上げると hashed storage に強制移行させられてしまう。この時、非常に高い確率で__プロジェクトのリポジトリが消えてしまうトラブル__に遭遇することになる。
5
- - [GitLab 14 では legacy storage サポート打ち切りのアナウンスが出ている](https://docs.gitlab.com/ee/////administration/repository_storage_types.html#legacy-storage)ので、今のうちに hashed storage に移行した方が良い。以下、その手順を示す。<br />※ 本手順は [docker-compose を使って起動している GitLab](https://docs.gitlab.com/omnibus/docker/#install-gitlab-using-docker-compose) を前提とする。
5
+ - [GitLab 14 では legacy storage サポート打ち切りのアナウンスが出ている](https://docs.gitlab.com/ee/////administration/repository_storage_types.html#legacy-storage)ので、今のうちに hashed storage に移行した方が良い。以下、その手順を示す。
6
+ - 本手順は [docker-compose を使って起動している GitLab](https://docs.gitlab.com/omnibus/docker/#install-gitlab-using-docker-compose) を前提とする。<br />⇒ 上記のリンク先の解説を試す時は、`gitlab-ee``gitlab-ce` に置き換えること。
6
7
7
8
## なぜこのナレッジを書いたのか?
8
- - 「自力で GitLab を動作させている方々のトラブル防止や解決の一助になれば…」と思って書かせていただいた。
9
+ - この謎のリポジトリ消失問題を解決するまでに結構な期間悩んでしまったので、「自力で GitLab を動作させている方々のトラブル防止や解決の一助になれば…」と思って書かせていただいた。
9
10
10
11
---
11
12
12
13
# 移行手順
@@ -36,9 +37,9 @@
36
37
```
37
38
docker-compose exec gitlab gitlab-rake gitlab:storage:migrate_to_hashed
38
39
```
39
40
- このコマンドを実行した後に GitLab の管理者エリアの“監視”→“バックグラウンドジョブ”を開くと、マイグレーションの進行状況やマイグレーション終了時のエラーの有無を確認することができる。
40
- - マイグレーションが終了した時に `OpenSSL::Cipher::CipherError:` のエラーが発生していたらマイグレーションに失敗している。このエラーが発生した場合は、バックアップを書き戻してマイグレーションを最初からやり直す時、最初に手順&#9312;を実行して runner registration tokens を削除するとうまくいく。
41
+ - マイグレーションが終了した時に `OpenSSL::Cipher::CipherError:` のエラーが発生していたらマイグレーションに失敗している。このエラーが発生した場合は、バックアップを書き戻してマイグレーションを最初からやり直す時に、最初に手順&#9312;を実行して runner registration tokens を削除するとうまくいく。
41
42
- このコマンドを実行すると全てのプロジェクトが hashed storage にマイグレーションされる。特定の範囲のプロジェクトをマイグレーションしたい場合は“ID_FROM”と“ID_TO”を追加して以下のようにやればよい。
42
43
```
43
44
docker-compose exec gitlab gitlab-rake gitlab:storage:migrate_to_hashed ID_FROM=50 ID_TO=100
44
45
```
@@ -55,16 +56,18 @@
55
56
- 手順&#9312;で runner registration tokens を削除してしまった場合は、新しいトークンを作り直す。
56
57
57
58
## まだ GitLab 12.x.x 以下を使っている場合のもっと簡単な移行手順
58
59
1. 現在の環境のままで runner registration tokens を削除する。
60
+ - 動作未確認なので 12.x.x 以下ではうまく削除できないかもしれないというリスクがある。
59
61
2. GitLab を 13.4.0 以上にバージョンアップする。
62
+ 3. 削除した runner registration tokens を作り直す。
60
63
61
64
---
62
65
63
66
# APPENDIX A:現在利用している GitLab のバージョンの確認方法
64
- 1. GitLab にサインインする。
65
- 2. `https://GitLabのアドレス/help` を開く。
67
+ - `https://GitLabのアドレス/help` を開く。
66
- - 例)https://gitlab.koba.jp/help ← 要サインイン。
68
+ - 例)https://gitlab.koba.jp/help
69
+ - サインインしないと GitLab のバージョンは表示されないので、右上に“Sign in”と表示されていたらサインインすること。
67
70
68
71
# APPENDIX B:参考資料
69
72
- [Repository storage Rake tasks](https://docs.gitlab.com/ee/administration/raketasks/storage.html)
70
73
- [Back up and restore GitLab](https://docs.gitlab.com/ee/raketasks/backup_restore.html)

過去のナレッジの内容

現在のナレッジの内容
 戻る