サーバー2台でmoodleのミラーリング

サーバー2台でmoodleのミラーリング

- daiki ooyama の投稿
返信数: 4

moodle勉強中で見当違いの質問かも知れませんがご了承ください。

やりたい事

・サーバー2台にそれぞれmoodleが入っています。

・1つのmoodleにコースの追加やファイルを添付した際に、もう一つのmoodleに反映される。

このミラーリング的(連携)をサーバ丸ごとではくmoodleでしたい。


このような処理を現実的に出来るのでしょうか?

もし、出来るのであれば、どのような手段が可能でしょうか?

1.moodle機能に既にそのようなAPI・スプリクトがあり、それをプログラムで組み合わせる?

2.moodle機能に既にそのようなUIがあり、画面上で設定ができる?

3.xAPIを使用する?(xAPIが何が出来るのかいまいち把握できていません)

4.そもそもそのような機能はなく、オープンソースなのでPHPやDBを解読して作りこむしかない?

もし詳しい方がいらっしゃいましたら、ご教授お願いできないでしょうか?

よろしくお願い致します。

daiki ooyama への返信

Re: サーバー2台でmoodleのミラーリング

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> このような処理を現実的に出来るのでしょうか?

できないことはないと思います。

以下のようにMoodleにアップロードされるファイル等の「Moodleデータ」および「Moodleデータベース」を分けて同期されてはいかがでしょうか。

  • Moodleデータ ($CFG->dataroot) のリアルタイム同期
  • Moodleデータベース (MariaDBまたはMySQL) のレプリケーション

参考資料:
[lsyncd、rsyncによる別サーバーへのリアルタイム同期(ミラーリング)の手順(鍵認証)- hiro's log]
https://hiroslog.com/post/186

[MySQL Replication for Moodle | Ubuntu Infrastructure Advisory]
https://infraadvisory.wordpress.com/2013/11/27/mysql-replication-for-moodle/

Mitsuhiro Yoshida への返信

Re: サーバー2台でmoodleのミラーリング

- daiki ooyama の投稿
Yoshida様
返信ありがとうございました。

なるほど、moodledataの同期、DBの同期という事ですね。
そのよう方法を教えて頂きありがとうございます。

もし、よろしければもう一つ教えて頂けないでしょうか?
私は下記の「1.」を行い、cron設定などで1日1回バッチ処理をしてみたらと考えていました。
>1.moodle機能に既にそのようなAPI・スプリクトがあり、それをプログラムで組み合わせる?

ただ、moodleの既存の機能(APIまたスクリプト)を組み合わせてそのような処理ができるのか分からずにいます。
例えば
・一括でコースを取得する処理
 (一括ではなくても、件数とIDが分かり、それを1件ずつ取得する)
・取得したコースをアップロードする処理

このような既存の処理はありますでしょうか?
これをプログラムで組むイメージです。
アップロード時にDBまたはファイルの変更・追加・削除が出来るのが不安ですが。

ご教授よろしくお願い致します。
daiki ooyama への返信

Re: サーバー2台でmoodleのミラーリング

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> このような既存の処理はありますでしょうか?

現在のところ、存在しないようです。

Moodle実稼動サイトでのユーザ、コース、ログ、アップロードされたファイル等のバッチ処理による同期は簡単ではないように思えます。

Mitsuhiro Yoshida への返信

Re: サーバー2台でmoodleのミラーリング

- daiki ooyama の投稿
Yoshida様

変な質問にご返答頂きありがとうございます。とても勉強になりました。
Yoshida様のアドバイスも考慮して、再度検討いたします。
本当にありがとうございました。