首页 > 代码库 > linux下通过mount挂载iscsi、ntfs、nfs详解

linux下通过mount挂载iscsi、ntfs、nfs详解



通常服务器本机自带磁盘空间有限,都需要额外加载磁盘,可以采用mount方式把远程的共享存储磁盘加载进来,目前用过的有iscsi、ntfs、nfs三种类型


 
一,mount挂载iscsi类型
1,查找下准备挂载的磁盘或者存储器
[root@localhost /]# iscsiadm -m discovery -t st -p 1x.xx.0.22:3260
1x.xx.0.22:3260,1 iqn.2001-05.com.equallogic:0-8a0906-6dac38009-c1b1cac2d434efec-pddata
1x.xx.0.22:3260,1 iqn.2001-05.com.equallogic:0-8a0906-4061f7f09-29d248cfaed54b9d-daxxxx
[root@localhost /]# 


[root@localhost ~]# iscsiadm -m iqn.2001-05.com.equallogic:0-8a0906-4061f7f09-29d248cfaed54b9d-daxxxx -T /daxxxx -p 1x.xx.0.22:3260 -l
Try `iscsiadm --help‘ for more information.
[root@localhost ~]# iscsiadm --help
iscsiadm -m discoverydb [ -hV ] [ -d debug_level ] [-P printlevel] [ -t type -p ip:port -I ifaceN ... [ -Dl ] ] | [ [ -p ip:port -t type] [ -o operation ] [ -n name ] [ -v value ] [ -lD ] ] 
iscsiadm -m discovery [ -hV ] [ -d debug_level ] [-P printlevel] [ -t type -p ip:port -I ifaceN ... [ -l ] ] | [ [ -p ip:port ] [ -l | -D ] ] 
iscsiadm -m node [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -L all,manual,automatic ] [ -U all,manual,automatic ] [ -S ] [ [ -T targetname -p ip:port -I ifaceN ] [ -l | -u | -R | -s] ] [ [ -o  operation  ] [ -n name ] [ -v value ] ]
iscsiadm -m session [ -hV ] [ -d debug_level ] [ -P  printlevel] [ -r sessionid | sysfsdir [ -R | -u | -s ] [ -o operation ] [ -n name ] [ -v value ] ]
iscsiadm -m iface [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -I ifacename | -H hostno|MAC ] [ [ -o  operation  ] [ -n name ] [ -v value ] ] [ -C ping [ -a ip ] [ -b packetsize ] [ -c count ] [ -i interval ] ]
iscsiadm -m fw [ -l ]
iscsiadm -m host [ -P printlevel ] [ -H hostno|MAC ] [ [ -C chap [ -o operation ] [ -v chap_tbl_idx ] ] | [ -C flashnode [ -o operation ] [ -A portal_type ] [ -x flashnode_idx ] [ -n name ] [ -v value ] ] ]
iscsiadm -k priority
[root@localhost ~]# 


默认情况下,iscsi发起方和目标方之间通过端口3260连接。假设已知iscsi的目标方IP是192.xxx.1.1,运行下列命令:

iscsiadm -m node -T  iqn.2001-05.com.equallogic:0-8a0906-4061f7f09-29d248cfaed54b9d-daxxxx   -p 1x.xx.0.22:3260 -l
如果要在系统启动时自动登入 
iscsiadm -m node –T iqn.1997-05.com.test:raid -p 192.xxx.1.1:3260 --op update -n node.startup -v automatic

2,登录节点
[root@localhost ~]# iscsiadm -m node -T  iqn.2001-05.com.equallogic:0-8a0906-4061f7f09-29d248cfaed54b9d-daxxxx   -p 1x.xx.0.22:3260 -l
Logging in to [iface: iscsi_eth0, target: iqn.2001-05.com.equallogic:0-8a0906-4061f7f09-29d248cfaed54b9d-daxxxx, portal: 1x.xx.0.22,3260] (multiple)
Login to [iface: iscsi_eth0, target: iqn.2001-05.com.equallogic:0-8a0906-4061f7f09-29d248cfaed54b9d-daxxxx, portal: 1x.xx.0.22,3260] successful.
[root@localhost ~]# 


3,运行fdisk -l查看节点,如下所示。
[root@localhost ~]# fdisk -l


WARNING: GPT (GUID Partition Table) detected on ‘/dev/sda‘! The util fdisk doesn‘t support GPT. Use GNU Parted.




Disk /dev/sda: 146.0 GB, 145999527936 bytes
255 heads, 63 sectors/track, 17750 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       17751   142577663+  ee  GPT


Disk /dev/mapper/VolGroup-lv_root: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000




Disk /dev/mapper/VolGroup-lv_swap: 9487 MB, 9487515648 bytes
255 heads, 63 sectors/track, 1153 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000




Disk /dev/mapper/VolGroup-lv_home: 82.1 GB, 82086723584 bytes
255 heads, 63 sectors/track, 9979 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000




Disk /dev/sdb: 1099.5 GB, 1099526307840 bytes
255 heads, 63 sectors/track, 133676 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xcb8879db


   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      133676  1073752438+  83  Linux


Disk /dev/sdc: 1099.5 GB, 1099526307840 bytes
255 heads, 63 sectors/track, 133676 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


[root@localhost ~]# 

可以看到新挂载的Disk /dev/sdc: 1099.5 GB, 1099526307840 bytes


4,登入需验证码的节点:

开启认证
iscsiadm -m node -T iqn.2001-05.com.equallogic:0-8a0906-4061f7f09-29d248cfaed54b9d-daxxxx -o update -name node.session.auth.authmethod -value=http://www.mamicode.com/CHAP
*.使用-o同--op


5,格式化设备
[root@localhost baimo]# mount /dev/sdc /daxxxx
mount: you must specify the filesystem type
[root@localhost baimo]# 
查看原有的磁盘文件系统格式:
[root@localhost ~]# df -T
文件系统    类型         1K-块      已用      可用 已用% 挂载点
/dev/mapper/VolGroup-lv_root
              ext4    51606140  30446060  18538640  63% /
tmpfs        tmpfs     9261428   3099716   6161712  34% /dev/shm
/dev/sda2     ext4      495844     77683    392561  17% /boot
/dev/sda1     vfat      204580       260    204320   1% /boot/efi
/dev/mapper/VolGroup-lv_home
              ext4    78904232  72142868   2753224  97% /home
/dev/sdb1     ext4   1056902612 730470180 272744812  73% /data
[root@localhost ~]# 


看到为ext4格式,如欲将设备格式化为ext4文件系统,运行# mkfs.ext4 /dev/sdc,如下所示:
[root@localhost ~]#  mkfs.ext4 /dev/sdc
mke2fs 1.41.12 (17-May-2010)
/dev/sdc is entire device, not just one partition!
无论如何也要继续? (y,n) y
Discarding device blocks: failed - 输入/输出错误
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
67117056 inodes, 268439040 blocks
13421952 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
8193 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
102400000, 214990848



6,开始挂接设备
在/mnt下创建iscsi目录
mkdir -p /daxxxx
运行mount命令:
# mount -t /dev/sdc /daxxxx

针对iscsi设备的特殊mount选项,运行df –h可以看到/daxxxx目录:
[root@localhost ~]# mount /dev/sdc /daxxxx
[root@localhost ~]# df -h
文件系统      容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root
                       50G   30G   18G  63% /
tmpfs                 8.9G  3.0G  5.9G  34% /dev/shm
/dev/sda2             485M   76M  384M  17% /boot
/dev/sda1             200M  260K  200M   1% /boot/efi
/dev/sdc             1008G  200M  957G   1% /daxxxx
[root@localhost ~]# 

看到,iscsi设备被成功挂接,可以当作常规存储设备使用了。
如果要在系统启动时自动挂接
编辑/etc/fstab加入一行:
/dev/sdc /daxxxx ext4 default 0 0


7,登出节点
首先解除挂接
#umount /mnt/iscsi
登出
# iscsiadm -m node –T iqn.2001-05.com.equallogic:0-8a0906-4061f7f09-29d248cfaed54b9d-daxxxx -p 1x.xx.0.22:3260 –u


8,报错问题记录
ifconfig eth0 192.xxx.0.1 netmask 255.255.255.0 up  
[root@localhost ~]# iscsiadm -m discovery -t st -p 1x.xx.0.22:3260
iscsiadm: connect to 1x.xx.0.22 timed out
iscsiadm: connect to 1x.xx.0.22 timed out
iscsiadm: connect to 1x.xx.0.22 timed out
^Ciscsiadm: caught SIGINT, exiting...
[root@localhost ~]# 
报错,去check下看是否可以ping通
[root@localhost /]# ping 1x.xx.0.22
PING 1x.xx.0.22 (1x.xx.0.22) 56(84) bytes of data.
^C
--- 1x.xx.0.22 ping statistics ---
172 packets transmitted, 0 received, 100% packet loss, time 171475ms

[root@localhost /]# 

去查看网络配置
[root@localhost /]# ifconfig
eth0      Link encap:Ethernet  HWaddr 5C:F3:FC:1B:73:B4  
          inet6 addr: fe80::5ef3:fcff:fe1b:73b4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:27910750 errors:0 dropped:243 overruns:0 frame:0
          TX packets:4909669 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2068014537 (1.9 GiB)  TX bytes:409283724 (390.3 MiB)


eth1      Link encap:Ethernet  HWaddr 5C:F3:FC:1B:73:B6  
          inet addr:192.xxx.1xx.107  Bcast:192.xxx.1xx.255  Mask:255.255.255.0
          inet6 addr: fe80::5ef3:fcff:fe1b:73b6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:37927936 errors:0 dropped:1563 overruns:0 frame:0
          TX packets:41504235 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:21039621446 (19.5 GiB)  TX bytes:34187439193 (31.8 GiB)


lo        Link encap:Local Loopback  
 
原来eth0的网络ip没有配置,只配置了eth1的,所以需要ifconfg一下
[root@localhost /]# ifconfig eth0  1x.xx.0.107 netmask 255.255.255.0
[root@localhost /]# ifconfig
eth0      Link encap:Ethernet  HWaddr 5C:F3:FC:1B:73:B4  
          inet addr:1x.xx.0.107  Bcast:1x.xx.0.255  Mask:255.255.255.0
          inet6 addr: fe80::5ef3:fcff:fe1b:73b4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:27913798 errors:0 dropped:243 overruns:0 frame:0
          TX packets:4910226 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2068233906 (1.9 GiB)  TX bytes:409330163 (390.3 MiB)


eth1      Link encap:Ethernet  HWaddr 5C:F3:FC:1B:73:B6  
          inet addr:192.xxx.1xx.107  Bcast:192.xxx.1xx.255  Mask:255.255.255.0
          inet6 addr: fe80::5ef3:fcff:fe1b:73b6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:38546864 errors:0 dropped:1563 overruns:0 frame:0
          TX packets:42148624 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:21287430291 (19.8 GiB)  TX bytes:34555423236 (32.1 GiB)
查看到ifconfig已经正常,然后去ping下,已经正常。  
[root@localhost /]# ping 1x.xx.0.22
PING 1x.xx.0.22 (1x.xx.0.22) 56(84) bytes of data.
64 bytes from 1x.xx.0.22: icmp_seq=1 ttl=255 time=1.00 ms
64 bytes from 1x.xx.0.22: icmp_seq=2 ttl=255 time=0.082 ms
64 bytes from 1x.xx.0.22: icmp_seq=3 ttl=255 time=0.150 ms
^C
--- 1x.xx.0.22 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2334ms
rtt min/avg/max/mdev = 0.082/0.411/1.003/0.419 ms
[root@localhost /]#  


二,mount挂载ntfs类型
1,安装软件Fuse以及Ntfs-3g

从http://fuse.sourceforge.net上下载源代码
wget http://easynews.dl.sourceforge.net/sourceforge/fuse/fuse-2.7.1.tar.gz
解压缩源代码:
tar zxf fuse-2.7.1.tar.gz
编译和安装fuse源代码
cd fuse-2.7.1
./configure --exec-prefix=/; make; make install
Ntfs-3g安装
从网站http://www.tuxera.com/community/ntfs-3g-download/上下载源代码包:
wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2011.4.12.tgz 
解压缩安装:
 tar zxf ntfs-3g_ntfsprogs-2011.4.12.tgz
编译和安装ntfs-3g源代码。
 cd ntfs-3g_ntfsprogs-2011.4.12
 ./configure
 make
 make install

2,挂载
如果在安装过程中没有出现错误,NTFS卷可以mount到Linux上,并且具有读写权限。
 fdisk -l | grep NTFS
 (/dev/sdb1               2    62016256  1953512032+   7  HPFS/NTFS)
 mount -t ntfs-3g /dev/sdb1 /data/oracle


三,mount挂载nfs磁盘类似
1,在linux上安装nfs软件
yum -y install nfs-utils portma
yum install nfs -y
/etc/rc.d/init.d/nfs status
/etc/rc.d/init.d/nfs start|stop|restart
2,挂载windows的共享磁盘
先测试下挂载的服务器
showmount -e 192.168.1.225
再进行挂载操作
mount   -o   username=administrator  //1xx.xx.180.252/backdate/baimo   /home/baimo
3,挂载linux下的共享磁盘
mount -t nfs 1xx.xx.0.231:/nfs/frank /mnt/oracle
4,挂载USB移动硬盘:
mount -t ntfs /dev/sdc1 /root/usb
5,解除挂载
umount /mnt/oracle


 ----------------------------------------------------------------------------------------------------------------
<版权所有,允许转载,但必须以链接方式注明源地址,否则追究法律责任!>
原博客地址:     http://blog.itpub.net/26230597/viewspace-1413077/
原作者:黄杉 (mchdba)
----------------------------------------------------------------------------------------------------------------

linux下通过mount挂载iscsi、ntfs、nfs详解