Linux服务器使用存储网络(SAN)提供的LUN时,可能存在每次挂载上设备名称发生变化的情况,如果在
/etc/fstab中配置相关磁盘设备自动mount,由于名称变化,系统找不到对应的设备,可能造成启动过程挂起问
题或者不能正确挂载,本文主要说明如何使用设备文件的UUI挂载可以解决上述问题。
linux系统中文件是一个重要的概念,所有的硬件设备、通信端口、管道等都被认为是文件并加以管理,些硬件
设备文件都存放在/dev目录之下,为了方便管理,Linux为每个设备分配了唯一的标识符,称之为UUID,磁盘设备
文件的UUID可通过tune2fs命令获得,如tune2fs -l /dev/sdc,显示如下信息:
tune2fs 1.39 (29-May-2006)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 2fbe4901-6234-4144-8f49-b800c6f290ab
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 131072
Block count: 524172
Reserved block count: 26208
Free blocks: 497085
Free inodes: 131057
First block: 1
Block size: 1024
Fragment size: 1024
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 2048
Inode blocks per group: 256
Filesystem created: Wed Jan 18 13:05:27 2012
Last mount time: Tue Feb 21 10:11:17 2012
Last write time: Tue Feb 21 10:11:17 2012
Mount count: 5
Maximum mount count: 29
Last checked: Wed Jan 18 13:05:27 2012
Check interval: 15552000 (6 months)
Next check after: Mon Jul 16 13:05:27 2012
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal inode: 8
Default directory hash: tea
Directory Hash Seed: fab4ecef-0d96-4f13-893b-27844f20c373
Journal backup: inode blocks
知道了UUID后,即可以在fstab配置文件中以UUID代替设备路径,例子如下:
UUID=2fbe4901-6234-4144-8f49-b800c6f290ab /mnt/external ext3 defaults 0 0
如果采用iSCSI等方式连接存储网络,无法在主机网络设备没有启动正常前挂载存储设备,可以加上 _netdev 参数,
可以在网络连通后才挂载此设备,具体如下
UUID=2fbe4901-6234-4144-8f49-b800c6f290ab /mnt/external ext3 defaults,_netdev 0 0
通过上面的方法即可以实现自动存储设备mount了,即使是通过网络连接或者设备名经常发生变化也可以应对。