Commit 5cb535b6 authored by Achilleas Pipinellis's avatar Achilleas Pipinellis Committed by Rémy Coutable

Merge branch 'add_more_info_for_repository_storage' into 'master'

Add detailed info on storage path mountpoints

Users that run GitLab from source should be extra careful when using the
multiple repository storage feature. Make sure there is a detailed explanation
why this happens and how to overcome it.

See merge request !5437
Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 162f0ba4
...@@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date. ...@@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 8.10.1 (unreleased) v 8.10.1 (unreleased)
- Refactor repository storages documentation. !5428 - Refactor repository storages documentation. !5428
- Gracefully handle case when keep-around references are corrupted or exist already. !5430 - Gracefully handle case when keep-around references are corrupted or exist already. !5430
- Add detailed info on storage path mountpoints. !5437
v 8.10.0 v 8.10.0
- Fix profile activity heatmap to show correct day name (eanplatter) - Fix profile activity heatmap to show correct day name (eanplatter)
......
...@@ -15,13 +15,33 @@ storage load between several mount points. ...@@ -15,13 +15,33 @@ storage load between several mount points.
## Configure GitLab ## Configure GitLab
>**Warning:** >**Warning:**
- In order for backups to work correctly the storage path must **not** be a In order for [backups] to work correctly, the storage path must **not** be a
mount point and the GitLab user should have correct permissions for the parent mount point and the GitLab user should have correct permissions for the parent
directory of the path. directory of the path. In Omnibus GitLab this is taken care of automatically,
but for source installations you should be extra careful.
>
The thing is that for compatibility reasons `gitlab.yml` has a different
structure than Omnibus. In `gitlab.yml` you indicate the path for the
repositories, for example `/home/git/repositories`, while in Omnibus you
indicate `git_data_dirs`, which for the example above would be `/home/git`.
Then, Omnibus will create a `repositories` directory under that path to use with
`gitlab.yml`.
>
This little detail matters because while restoring a backup, the current
contents of `/home/git/repositories` [are moved to][raketask] `/home/git/repositories.old`,
so if `/home/git/repositories` is the mount point, then `mv` would be moving
things between mount points, and bad things could happen. Ideally,
`/home/git` would be the mount point, so then things would be moving within the
same mount point. This is guaranteed with Omnibus installations (because they
don't specify the full repository path but the parent path), but not for source
installations.
---
Edit the configuration files and add the full paths of the alternative repository Now that you've read that big fat warning above, let's edit the configuration
storage paths. In the example below we added two more mountpoints that we named files and add the full paths of the alternative repository storage paths. In
`nfs` and `cephfs` respectively. the example below, we add two more mountpoints that are named `nfs` and `cephfs`
respectively.
**For installations from source** **For installations from source**
...@@ -39,17 +59,12 @@ storage paths. In the example below we added two more mountpoints that we named ...@@ -39,17 +59,12 @@ storage paths. In the example below we added two more mountpoints that we named
1. [Restart GitLab] for the changes to take effect. 1. [Restart GitLab] for the changes to take effect.
The `gitlab_shell: repos_path` entry in `gitlab.yml` will be deprecated and >**Note:**
replaced by `repositories: storages` in the future, so if you are upgrading The [`gitlab_shell: repos_path` entry][repospath] in `gitlab.yml` will be
from a version prior to 8.10, make sure to add the configuration as described deprecated and replaced by `repositories: storages` in the future, so if you
in the step above. After you make the changes and confirm they are working, are upgrading from a version prior to 8.10, make sure to add the configuration
you can remove: as described in the step above. After you make the changes and confirm they are
working, you can remove the `repos_path` line.
```yaml
repos_path: /home/git/repositories
```
which is located under the `gitlab_shell` section.
--- ---
...@@ -79,3 +94,6 @@ be stored via the **Application Settings** in the Admin area. ...@@ -79,3 +94,6 @@ be stored via the **Application Settings** in the Admin area.
[ce-4578]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4578 [ce-4578]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4578
[restart gitlab]: restart_gitlab.md#installations-from-source [restart gitlab]: restart_gitlab.md#installations-from-source
[reconfigure gitlab]: restart_gitlab.md#omnibus-gitlab-reconfigure [reconfigure gitlab]: restart_gitlab.md#omnibus-gitlab-reconfigure
[backups]: ../raketasks/backup_restore.md
[raketask]: https://gitlab.com/gitlab-org/gitlab-ce/blob/033e5423a2594e08a7ebcd2379bd2331f4c39032/lib/backup/repository.rb#L54-56
[repospath]: https://gitlab.com/gitlab-org/gitlab-ce/blob/8-9-stable/config/gitlab.yml.example#L457
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment