之前写过一篇关于在centos中使用btrfs的文章,现在如果在实际生产环境中使用还是会出现很多问题

我把我所遇到的问题总结了一下:
因为centos6.3内核版本是2.6.32,如果单纯不升级内核而使用这个文件系统,在一些命令使用上会是系统存在风险 
比如:
我用btrfsctl建立的快照无法使用命令删除,用rm暴力删除的话,会留下许多目录,仔细读了文档后才知道,还不支持rm删除快照卷
如果用btrfs命令建立快照卷的话
btrfs sub delete SUB_NAME
在我执行这条命令后,等几秒后机器就会down掉,弹出下图的信息

明显是内核太低了,官网给的解释是0.19一定要结合目前main line版本的内核,因为btrfs还在密集开发中,所以一有改变就会更新到内核中去,现在内核稳定版本是 3.5.3
如果你已经按照我之前的文章做了实验,建议升级内核版本后,这类问题就不复存在了
 
其实我在后来的使用中发现 在Ubuntu上使用btrfs更简单,单从btrfs-tools工具安装就能看出来 下面是我在Ubuntu12.04上做的实验
 
环境 Ubuntu 12.04
工具:btrfs-tools
安装方法 :apt-get build-dep btrfs-tools
           apt-get install btrfs-tools
加载模块:modprobe btrfs
查看:
 
 
  
  1. root@test:~# lsmod |grep btrfs 
  2. btrfs                 652957  2  
  3. zlib_deflate           27139  1 btrfs 
  4. libcrc32c              12644  1 btrfs 
  5. 格式化: 
  6. root@test:~# mkfs.btrfs -L DB_BAK /dev/sde  
  7.  
  8. WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL 
  9. WARNING! - see http://btrfs.wiki.kernel.org before using 
  10.  
  11. fs created label DB_BAK on /dev/sde 
  12.     nodesize 4096 leafsize 4096 sectorsize 4096 size 465.76GB 
  13. Btrfs Btrfs v0.19 
  14. 挂载:  
  15. mount /dev/sde /disk3 
 
使用方法:
创建子卷:
 
 
  
  1. btrfs sub create /disk3/web_bak 
为子卷创建快照
 
 
  
  1. btrfs sub snap /disk3/web_bak /disk3/web_old_bak/ 
其实快照卷也是个子卷,所以想要删除快照卷,命令和删除子卷是一样的 
 
 
  
  1. btrfs sub delete /disk3/web_old_bak 
你也可以使用btrfs --help 获得命令帮助
 
如果还是顾虑内核问题你可以将Ubuntu升级到3.5
wget -O linux-kernel-3.5.2 http://dl.dropbox.com/u/47950494/upubuntu.com/linux-kernel-3.5.2
手动执行一下这个脚本,重启机器后就可以使用新内核了 
 
btrfs问题纠结了我两周,因为一直被升级内核困扰.我用的服务器型号是Dell R510的,使用新内核一直无法成功启动机器,机器启动报错截图如下

我确定我的配置参数没有问题,cpu选择的是 

但是在R410上使用这些配置选项编译的内核却能正常开机。问dell技术支持,他们回答是不提供软件系统方面的支持。
因为老大催的紧,没办法,后来直接就从Centos换成Ubuntu系统,因为服务器上有sda盘是系统 ,sdc和sdb磁盘都是些重要的备份数据,忌惮换系统后磁盘数据无法识别,从后来的实践证明是多虑了,因为有一个是ext4,一个是btrfs格式的文件系统,不过Ubuntu12.04还蛮给力的,都能识别出来。
如果你运行了linux-kernel-3.5.2这个脚本,成功升级了内核,btrfs模块已经编译进了内核,你就不需要再重新执行modprobe btrfs这个动作
root@server54:/disk3# lsmod |grep btrfs
btrfs                 781025  1 
zlib_deflate           27139  1 btrfs
libcrc32c              12644  1 btrfs
 
Ubuntu系统也是第一次接触,不过感觉和CentOS区别不是很大,就是网卡配置感觉很别扭。关于R510上在centos系统上升级3.5.2内核,我至今还没有成功,如果可以的话,可以尝试使用Ubuntu上3.5.2的config文件配置来升级centos,因为现在服务器都在做备份,不能再随意关机重启了,以后如果有机会的话,可以尝试一下