tmpフォルダーを「/」パーティションからマウントされたパーティション(/ mnt)に移動します


15

私は、小さな「/」パーティションと大きな「/ mnt」パーティションを与えたAmazon EC2インスタンスを持っています。そのため、mysql data-dirを/ mntパーティションに移動しました。ただし、現在、大量の結合クエリで/ tmpフォルダーの領域が不足している問題があり、/ tmpを/ mnt / tmpに移動しようとしています。シンボリックリンクを使用してこれを実行しようとしましたが、その結果、mysqlサービスが開始できなくなります。

/ tmpのストレージを/ mnt(/ dev / xvdb)に移動する方法についてアドバイスしてください

回答:


14

/tmpマウントポイントを/mnt/tmp次の場所にバインドできます。

sudo mount -B /tmp /mnt/tmp

素晴らしい!方法がわかれば簡単です。
Programster

4
非常に注意しなければならないことの1つは、/ mntパーティションが一時ストレージであることです。インスタンスを停止する(または低下してAWSがインスタンスを移動する)と、/ mntのデータは失われます。(特にMySQLの場合)EBSボリュームをマウントし、永続化するデータにそれを使用することをお勧めします。
ケビンウィルロック

@KevinWillock /mnt彼は実際にデータを保存しているので、彼は(サイズで)永続的である(または永続的なものをそこにマウントした)と思います。ちなみに、実際に彼にpingを送信したい場合があります(pingを使用@)。
ブライアム

@Braiam pingを受信しませんでしたが、幸運なことにこのスレッドを再度チェックしました。ケビンは、これが一時的なストレージであることは正しいでしょう。これは非常に安全ではないことを知っていますが、ローカルストレージを使用したパフォーマンスをテストするために意図的に行われました。このようなシステムを使用する場合、EBSボリュームまたはRDS自体に複製し、そこからバックアップするようにします。私はリスクをよく知っています。
Programster

1
再起動するたびにそのコマンドを実行する必要がありますか?
hithwen

2

"/ tmp"パーティションを移動するには、この間違った回答/ubuntu//a/371628/298086で提案されていない追加が必要です。

データの移動とは、バインドマウントでは絶対に実行されない、宛先パーティションに複製された元のパーティションからデータを消去することを意味します。

推奨事項:バインドマウントが/unix//a/198591であるかを理解したい場合は、この素晴らしい投稿を読んでください。

正しい マウントオプション(バインドではなく「移動」)を試してみると:

mount -M /tmp /mnt/tmp

tmpは共有マウントポイントであるという報告に失敗すると確信しています(実際に「まだ使用しているプロセスがある場合はマウントポイントを移動できない」という意味です

探している「答え」は、コンテンツを移動する前に、/ tmpを使用/アクセスしてサービスを停止および再起動する必要がある場合があります。

以下を実行することにより、これらのサービス/プロセスを一覧表示できます。

lsof +D /tmp/

したがって/tmp、実際にアクセス/使用しているものをリストしたら、「行動の仕方」を本当に決定できるのです。

私の意見では、最も安全な方法は通り過ぎる

  1. / tmpにアクセスするすべてのサービスを停止します(可能な場合)
  2. / tmpの内容全体を新しい場所にコピーする
  3. / etc / fstabを編集し、/ tmpマウントポイントの物理的な場所を変更します(バインドまたはデバイスマウントに関係なく)
  4. システムを再起動して再マウントを実行する

しかし、システムの再起動を必要としない別の方法がありますが、以前の方法ほど安全ではありません。ここで説明されており、怠la 方法でのアンマウント/tmpで構成されています。mount -M

この2つのリンクは、お客様の要求に役立ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.