English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

linuxでディレクトリ構造を変更せずにhomeディレクトリを新しいパーティションに移動する操作方法

問題提起

会社の開発テストサーバーはアリ云に配置されており、アリ云が提供するインスタンスは一般的に一つのパーティションだけです、 20Gから40Gの様子で、それからストレージをマウントして他のディレクトリに購入します。

そして、homeディレクトリはこの 20Gのルートディレクトリのパーティションの下にあります。開発者の増加に伴い、ルートディレクトリのパーティションはすぐに満たされます。

これは複数の場所での開発であるため、無感知のhomeの引越しの方案が必要です。

基本原理

このタスクを受け取ったとき、まず思い浮かぶのはbind mountの方法です:

mount --bind /some/where /else/where

無感知のhomeの引越しを実現できます。

中国語での検索では、このコマンドの説明が明確ではないと感じます。この質問と回答 説明が非常に明確で、英語が得意な人々は参照してください。

もちろん、「man mount」を尋ねることもできます。

具体的な操作

静かな夜に、whoコマンドを使用して、まだサーバーに滞在している子供たちが誰かを確認し、一人ずつ電話して空きを確保します:

$ who
Frodo pts/0    2017-04-17 09:07 (xx.xxx.xxx.xx)
Sam pts/1    2017-04-18 08:45 (xx.xxx.xxx.xx)
Pippin pts/3    2017-04-18 09:06 (xx.xxx.xxx.xx)
Merry pts/4    2017-04-18 09:07 (xx.xxx.xxx.xx)

周りに誰もいないことを確認した後、引越し(コピー)を開始します。cpコマンドを使用してコピーする際には、 -p オプションを使用して、ファイルの権限設定を保持します。root権限で、ターゲットパーティションが /new_disk :

# cp -p -r /home /new_disk/

新しい家は既に建てられていますが、まず古い家に別の住所番号を設定して、住所番号を新しい家に与えた後、古い家を見つけることができなくなるのを避けるために、mountを使います。 --bindを使って、元のhomeディレクトリを新しいディレクトリにマウントすることができます:

# mkdir /home_bkp
# mount --bind /home /home_bkp

この時点で、私たちは /home_bkp ディレクトリ下で古い家のすべてのファイルを見つけることができます。必要であれば、 /home という住所は新しい家に与えられました:

# mount --bind /new_disk/home /home

引越し完了!友達に快適に仕事を通知することができます。実際には、通知しなくても大丈夫です。引越しのことは、皆にとって無感覚のものです。

もちろん、誰かが聞くかもしれません、新しい家と古い家の住所の番号が同じで、どちらも /home、引越しの成功をどうやって知るか分かりません63; df コマンドを使用して確認できます:

# cd /home_bkp
# df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1    20G  17G 2.1G 90% /
# cd /home
# df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/xvdb1   296G  42G 240G 15% /new_disk

-h は human-読み取り可能、追加しなくても大丈夫です。それでは、ブロック単位で「反人間的」リストになります。

以下のコマンドは、まず故郷を見てください、マウントポイントは / ; 新しい家に戻ってみてください、マウントポイントは /new_disk これで安心しました。

永続化

まだ作業が完了していません。上記の作業は現在の新しい家のアドレスを確保しただけです。再起動すると、この情報は失われ、家のアドレスが元に戻ります。この情報を保持する方法を見つける必要があります。

変更 /etc/fstab ファイルに追加してください。このファイルを開き、最後に以下の二行を追加してください:

/home      /home_bkp none bind 0 0
/new_disk/home  /home none bind 0 0

これで home のディスク切り替え作業が完了しました。

後記

このプランは突然思いついたもので、前例がないため、問題が発生するかどうか分かりませんでした。現在、このプランの下でサーバーがほぼ一年間運用されていますが、何か問題は発生しておらず、みんなが快適に仕事をしています。多くの人々はこの件について知りませんでした。

故郷のディレクトリ /home_bkp がこのプランに実施されています1数ヶ月後、何か問題が見られなかったので、空きスペースを確保するために空ききりにしました。

声明:この記事の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしたものであり、このサイトは所有権を有しておらず、人工的に編集されていません。著作権侵害を疑う内容があれば、以下のメールアドレスまでご連絡ください:notice#oldtoolbag.com(メールを送信する際には、#を@に置き換えてください。通報を行い、関連する証拠を提供してください。一旦確認がついたら、このサイトは即座に侵害を疑われるコンテンツを削除します。)

おすすめ