BigBlueButton录像文件太多,Ubuntu Server硬盘不够怎么办?

使用BigBlueButton时开启了录制功能,时间一久就发现空间不够用了,于是先用最基本的操作,删掉已外理过的录音文件来清理出空间:

1. 清理Log
  sudo bbb-conf –clean
2.  删除旧的录像、文档、
   /etc/cron.daily/bigbluebutton
删除 `exit 0` 行来启用自动清理
清理项有:
find /var/bigbluebutton -maxdepth 1 -type d -name “*-*” -mtime +11 -exec rm -r ‘{}’ \;
find /usr/share/red5/webapps/video/streams -name “*.flv” -mtime +1 -exec rm ‘{}’ \;
find /var/bigbluebutton/deskshare -name “*.flv” -mtime +1 -exec rm ‘{}’ \;
find /var/freeswitch/meetings -name “*.wav” -mtime +1 -exec rm ‘{}’ \;
3.  删除已处理过的wav文件
sudo find /var/bigbluebutton/recording/process -name “*.wav” -exec rm ‘{}’ \;
这样做了之后能撑一段时间,可是时间久了又不够了,第一个念头就是加一块硬盘,然后把BigBlueButton默认的录像存放路径修改到新的硬盘上。
由于BigBlueButton本身没有提供修改录像文件路径的命令,于是我把BigBlueButton录制、处理、存储、回放的整个过程都详细研究了一遍,把这个过程中我认为所有涉及到路径的代码都给改了,可是最终还是不成功,实在找不出问题出在哪里,只能放弃了这个方案。不过可以把这个过程先记录下来,以做参考,想看较为可行的方案的可以跳过这部分:

录像与回放功能目录结构

/usr/local/bigbluebutton/
└── core
    ├── Gemfile
    ├── Gemfile.lock
    ├── lib
    │   ├── recordandplayback
    │   │   ├── audio_archiver.rb
    │   │   ├── deskshare_archiver.rb
    │   │   ├── events_archiver.rb
    │   │   ├── generators
    │   │   │   ├── audio_processor.rb
    │   │   │   ├── audio.rb
    │   │   │   ├── events.rb
    │   │   │   ├── matterhorn_processor.rb
    │   │   │   ├── presentation.rb
    │   │   │   └── video.rb
    │   │   ├── presentation_archiver.rb
    │   │   └── video_archiver.rb
    │   └── recordandplayback.rb
    └── scripts
        ├── archive
        │   └── archive.rb
        ├── bbb-rap.sh
        ├── bigbluebutton.yml
        ├── cleanup.rb
        ├── process
        │   ├── README
        │   └── slides.rb
        ├── publish
        │   ├── README
        │   └── slides.rb
        ├── rap-worker.rb
        └── slides.yml

最终录像回放存放目录

  • /var/bigbluebutton/published/slides/<meeting-id> 
修改录像与回放目录:
把原有的录像路径下所有文件与目录拷到目标路径,如/mnt下
sudo cp -a /var/bigbluebutton /mnt/
则新的录像与回放目录为:/mnt/bigbluebutton

sudo vi /usr/local/bigbluebutton/core/scripts/slides.yml

修改其中的publish_dir
sudo vi /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml
修改其中的recording_dir published_dir raw_deskshare_src raw_presentation_src
sudo vi /usr/local/bigbluebutton/core/scripts/cleanup.rb
修改其中的PUBLISHED_DIR UNPUBLISHED_DIR RECORDING_DIR
sudo vi /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
修改其中的presentationDir BLANK_SLIDE BLANK_THUMBNAIL recordStatusDir publishedDir unpublishedDir
使用下面这条命令前先把地址修改为想要修改的地址,以便网络用户有权限访问该位置的内容
sudo chown -R tomcat6:tomcat6 /mnt/bigbluebutton/playback/
sudo vi /etc/bigbluebutton/nginx/slides.nginx
修改其中的地址
sudo chown tomcat6 /mnt/bigbluebutton
修改目录所有者
sudo bbb-conf –clean
折腾了半天,结果还是无法正常录像,重启服务器也没用,只能换个思路了。左思右想,想出了这么一个办法:
  1. 把 /var/bigbluebutton目录内的文件移动到别处
  2. 新增一块硬盘挂载到/var/bigbluebutton目录
  3. 用ls -ld /var/bigbluebutton查看一下目录权限,所有者是否为tomcat6
  4. 如果不是则修改为tomcat6
  5. 把移到别处的文件拷回/var/bigbluebutton下
  6. 在sudo vi /etc/fstab中新建条目以便每次重启时自动加载

附上挂新硬盘的方法:

查看移动硬盘
sudo fdisk -l
挂载
sudo mount -t ext4 /dev/sdb1 /var/bigbluebutton
注:如果是fat32格式的则用-t vfat参数,如果是ext3格式的则用-t ext3参数,/dev/sdb1改为你要挂载的硬盘的实际名称
设置重启后自动挂载
sudo vi /etc/fstab
在该文件中添加:
/dev/sdb1        /var/bigbluebutton       ext4    defaults        0       0

由于BigBlueButton当前版本对于录像的存储、发布等功能还是非常不完善,只能先这样处理了。

当硬盘再次满了的时候还会面临新的问题。再加一块的话要么加一块更大的硬盘,把原有的录像文件复制到新的硬盘上;要么就制定一个规则,把超过一定时间的录像文件删掉,腾出新的空间来用。