1.配置iSCSI服务
服务器上要额外配置一块硬盘
服务端(proxy)安装target,并将新加的硬盘配置为iSCSI 的共享磁盘
在客户端(client)上安装initiator,挂载服务器iSCSI,要求实现开机自动挂载
1.1 安装iSCSI服务器软件(proxy)
1.1.1 装包
]# yum -y install targetcli
]# yum info targetcli
1.1.2 手动添加一块20G的硬盘,化分区
]# lsblk
vdb 252:16 0 20G 0 disk
]# parted /dev/vdb mklabel gpt
]# parted /dev/vdb mkpart primary 1 100%
]# lsblk
vdb 252:16 0 20G 0 disk
└─vdb1 252:17 0 20G 0 part
1.2 targetcli 划分分区
1.2.1 进入
]# targetcli
/> ls
o- / .............. [...]
o- backstores ... [...]
| o- block ...... [Storage Objects: 0]
| o- fileio ..... [Storage Objects: 0]
| o- pscsi ...... [Storage Objects: 0]
| o- ramdisk .... [Storage Objects: 0]
o- iscsi ........ [Targets: 0]
o- loopback ..... [Targets: 0]
三大块:backstores iscsi(空) loopback
1.2.2 使用targetcli定义后端存储
(后段存储backstores里block块目录下创建块存储store,使用/dev/vdb1全部空间)
/> backstores/block create store /dev/vdb1
o- backstores .... [...]
| o- block ..... [Storage Objects: 1]
| | o- store ... [/dev/vdb1...
1.2.3 iSCSI创建iqn对象(给iSCSI共享设置一个共享名称)
/> iscsi/ create iqn.2019-01.com.baidu:www
1.2.4 acl访问控制
/> iscsi/iqn.2019-01.com.baidu:www/tpg1/acls create iqn.2019-01.com.baidu:ftp
拥有 iqn.2019-01.com.baidu:ftp 名称的客户机才能访问
1.2.5 luns绑定存储(store)
/> iscsi/iqn.2019-01.com.baidu:www/tpg1/luns create /backstores/block/store
/> ls iscsi/
o- iscsi ............................. [Targets: 1]
| o- iqn.2019-01.com.baidu:www ..... [TPGs: 1]
| o- tpg1 ........................ [no-gen-acls, no-auth]
| o- acls ..................... [ACLs: 1]
| | o- iqn.2019-01.com.baidu:ftp [Mapped LUNs: 1]
| | o- mapped_lun0 .......... [lun0 block/store (rw)]
| o- luns ..................... [LUNs: 1]
| | o- lun0 ................... [block/store (/dev/vdb1)
| o- portals .................. [Portals: 1]
| o- 0.0.0.0:3260 ........... [OK]
/> saveconfig
/> exit
]# systemctl restart target
]# systemctl enable target
1.3 客户端访问(web1作为客户端的角色)
1.3.1 安装客户端软件
]# yum -y install iscsi-initiator-utils
1.3.2 设置本机的iqn名称
]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2019-01.com.baidu:ftp
1.3.3 发现远程target存储 提示:参考man iscsiadm!
]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.5 --discover 192.168.2.5:3260,1 iqn.2019-01.com.baidu:www
1.3.4 登陆挂载
]# iscsiadm --mode node --targetname iqn.2019-01.com.baidu:www --portal 192.168.2.5:3260 --login
]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
]# systemctl restart iscsi
1.3.5 分区、格式化、挂载
]# parted /dev/sda mklabel gpt
]# parted /dev/sda mkpart primary 1 800
]# mkfs.xfs /dev/sda1
]# mount /dev/sda1 /mnt
]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
└─sda1 8:1 0 762M 0 part /mnt
]# umount /mnt
1.4 附加课外实验:多台FTP或者http主机使用共享存储
1.4.1 web1 ftp使用共享存储
]# mkdir /var/ftp/
]# mount /dev/sda1 /var/ftp/
]# yum -y install vsftpd
]# sed -i 's/^#anon/anon/' /etc/vsftpd/vsftpd.conf
备注:修改vsftpd配置文件,开启匿名上传功能。将下面2行默认的注释行打开。
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
]# chmod 777 /var/ftp/pub
]# systemctl start vsftpd
]# systemctl enable vsftpd
备注:只有启动ftp才会产生pub文件夹
真机访问web1的ftp,并拖入任意文件(pub为777)
目标:当web1宕机后,web2主机可以继续使用iscsi提供FTP共享服务。
Web1关闭vsftpd服务,卸载iscsi挂载。
]# systemctl stop vsftpd(pub文件夹没有了)
]# umount /var/ftp(没有共享存储了)
1.4.2 web2 ftp使用共享存储
]# yum -y install iscsi-initiator-utils
]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2019-01.com.baidu:ftp
]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.5 --discover 192.168.2.5:3260,1 iqn.2019-01.com.baidu:www
]# iscsiadm --mode node --targetname iqn.2019-01.com.baidu:www --portal 192.168.2.5:3260 --login
]# lsblk
]# yum -y install vsftpd
]# sed -i 's/^#anon/anon/' /etc/vsftpd/vsftpd.conf
]# chmod 777 /var/ftp/pub/
]# systemctl start vsftpd
]# systemctl enable vsftpd
真机访问web2的ftp,并拖入任意文件(pub为777)
2.部署Multipath多路径环境(暂时不做)
3.配置并访问NFS共享
服务器利用NFS机制发布2个共享目录,要求如下:(proxy,192.168.2.5)
将目录/root共享给192.168.2.100,客户机的root用户有权限写入
将/usr/src目录共享给192.168.2.0/24网段,只开放读取权限
从客户机访问NFS共享:
分别查询/挂载上述NFS共享目录
查看挂载点目录,并测试是否有写入权限
3.1 配置NFS服务器,发布指定的共享
3.1.1 软件包nfs-utils用来提供NFS共享服务及相关工具,而软件包rpcbind用来提供RPC协议的支持
]# rpm -q nfs-utils rpcbind
nfs-utils-1.3.0-0.48.el7.x86_64
rpcbind-0.2.0-42.el7.x86_64
3.1.2 需要作为NFS共享发布的有/root、/usr/src这两个目录:
]# ls -ld /root /usr/src/
dr-xr-x---. 35 root root 4096 1月 15 18:52 /root
drwxrwxr-x+ 4 root root 4096 1月 15 17:35 /usr/src/
3.1.3 修改/etc/exports文件,添加共享目录设置
默认情况下,来自NFS客户端的root用户会被自动降权为普通用户,若要保留其root权限,注意应添加no_root_squash控制参数(没有该参数,默认root会被自动降级为普通账户);另外,限制只读的参数为ro、可读可写为rw,相关配置操作如下所示:
]# vim /etc/exports
/root 192.168.2.100(rw,no_root_squash)
/usr/src 192.168.2.0/24(ro)
3.1.4 启动NFS共享相关服务,确认共享列表
依次启动rpcbiind、nfs服务:
]# systemctl restart rpcbind; systemctl enable rpcbind
]# systemctl restart nfs; systemctl enable nfs
3.1.5 使用showmount命令查看本机发布的NFS共享列表:
]# showmount -e localhost
Export list for localhost:
/usr/src 192.168.2.0/24
/root 192.168.2.100
3.2 从客户机访问NFS共享(web1)
3.2.1 启用NFS共享支持服务
客户机访问NFS共享也需要rpcbind服务的支持,需确保此服务已开启:
]# systemctl restart rpcbind; systemctl enable rpcbind
3.1.2 查看服务器提供的NFS共享列表
]# showmount -e 192.168.2.5
Export list for 192.168.2.5:
/usr/src 192.168.2.0/24
/root 192.168.2.100
3.1.3 从客户机192.168.2.100访问两个NFS共享,并验证权限
将远程的NFS共享/root挂载到本地的/root5文件夹,并验证可读可写:
]# mkdir /root5 //建立挂载点
]# mount 192.168.2.5:/root /root5 //挂载NFS共享目录
]# df -hT /root5 //确认挂载结果
Filesystem Type Size Used Avail Use% Mounted on
192.168.2.5:/root nfs 50G 15G 33G 31% /root5
]# cd /root5 //切换到挂载点
root5]# echo "NFS Write Test" > test.txt //测试写入文件
root5]# cat test.txt //测试查看文件
NFS Write Test
proxy查看:
]# ls /root/ 是否有文件及内容(说明可以读写)
将远程的NFS共享/usr/src挂载到本地的/mnt/nfsdir,并验证只读:
]# mkdir /mnt/nfsdir //建立挂载点
]# mount 192.168.2.5:/usr/src /mnt/nfsdir/ //挂载NFS共享目录
]# df -hT /mnt/nfsdir/ //确认挂载结果
Filesystem Type Size Used Avail Use% Mounted on
192.168.2.5:/usr/src nfs 50G 15G 33G 31% /mnt/nfsdir
[root@web1 ~]# cd /mnt/nfsdir/ //切换到挂载点
nfsdir]# ls //读取目录列表
debug install.log kernels test.txt
]# echo "Write Test." > pc.txt //尝试写入文件失败
-bash: pc.txt: 只读文件系统
如果从未授权的客户机访问NFS共享,将会被拒绝。比如从NFS服务器本机尝试访问自己发布的/root共享(只允许192.168.2.100访问),结果如下所示:(proxy)
]# mkdir /root5
]# mount 192.168.2.5:/root /root5
mount.nfs: access denied by server while mounting 192.168.2.5:/root
3.1.4 设置永久挂载(web1)
]# vim /etc/fstab
.. ..
192.168.2.5:/usr/src /mnt/nfsdir nfs default,ro 0 0
192.168.2.5:/root /root5 nfs default 0 0
4.编写udev规则
4.1 先输入指令:再插入U盘(真机)
]# udevadm monitor --property
...
ID_BUS=usb(设备类型)
ID_VENDOR=OPPO(设备名)
ID_SERIAL_SHORT=LBNRSS5HYDMVINC6(设备序列号、串号)
ID_FS_TYPE=文件系统
ACTION=add
ACTION=remove
DEVNAME=
DEVPATH=
如果设备已经加载则无法使用monitor查看相关属性。可以使用下面的命令查看设备属性。
]# udevadm info --query=path --name=/dev/sda
]# udevadm info --query=property --path=/block/sda
单独查看某个磁盘分区的属性信息。
]# udevadm info --query=property --path=/block/sda1
4.2 编写udev规则文件(实现插拔USB设备时有屏幕提示信息)
]#vim /etc/udev/rules.d/70-usb.rules
ACTION=="add",ENV{ID_VENDOR}=="TOSHIBA",ENV{ID_SERIAL_SHORT}=="60A44CB4665EEE4133500001",RUN+="/usr/bin/systemctl start httpd"
ACTION=="remove",ENV{ID_VENDOR}=="TOSHIBA",ENV{ID_SERIAL_SHORT}=="60A44CB4665EEE4133500001",RUN+="/usr/bin/systemctl stop httpd"
**********************************
udev常见操作符:
== 表示匹配
!= 不匹配
= 指定赋予的值
+= 添加新值
:= 指定值,且不允许替换
NAME=“udisk" 定义设备名称
SYMLINK+=”data1" 定义设备的别名
OWNER=“student" 定义设备的所有者
GROUP=”student" 定义设备的所属组
MODE=“0600” 定义设备的权限
ACTION==“add" 判断设备的插拔操作
KERNEL=="sd[a-z]1" 判断设备的内核名称
RUN+=程序 为设备添加程序
udev常用替代变量:
%k:内核所识别出来的设备名,如sdb1
%n:设备的内核编号,如sda3中的3
%p:设备路径,如/sys/block/sdb/sdb1
- WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]
原文:WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇] 在[WS标准篇]中我花了很大的篇幅介绍了WS-MEX以及与它相关的WS规范:WS-Policy.WS-Tra ...
- JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine
JAVA之旅(二十五)--文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine 我们继续IO上个篇 ...
- 二十五种网页加速方法和seo优化技巧
一.使用良好的结构 可扩展 HTML (XHTML) 具有许多优势,但是其缺点也很明显.XHTML 可能使您的页面更加符合标准,但是它大量使用标记(强制性的 <start> 和 <e ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- 智课雅思词汇---二十五、-ate
智课雅思词汇---二十五.-ate 一.总结 一句话总结:又是动词,又是名词,又是形容词 后缀:-ate ①[动词后缀] 表示做.造成.使之成....做...事等意义 hyphenate 加连字符 o ...
- 剑指Offer(二十五):复杂链表的复制
剑指Offer(二十五):复杂链表的复制 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/bai ...
- 《手把手教你》系列技巧篇(二十五)-java+ selenium自动化测试-FluentWait(详细教程)
1.简介 其实今天介绍也讲解的也是一种等待的方法,有些童鞋或者小伙伴们会问宏哥,这也是一种等待方法,为什么不在上一篇文章中竹筒倒豆子一股脑的全部说完,反而又在这里单独写了一篇.那是因为这个比较重要,所 ...
- Bootstrap <基础二十五>警告(Alerts)
警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个 ...
- VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池
VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池 终端服务池是指由一台或多台微软终端服务器提供服务的桌面源组成的池.终端服务器桌面源可交付多个桌面.它具有以下特征: 1.终端 ...
随机推荐
- PAT(B) 1089 狼人杀-简单版(Java)逻辑推理
题目链接:1089 狼人杀-简单版 (20 point(s)) 题目描述 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局" ...
- hadoop 完全分布式搭建总结
完全分布式--------------- 1.配置文件 [core-site.xml] hdfs 地址 fs.defaultFS=hdfs://s129:8020/ [hdfs-site.xml] 副 ...
- 【dfs】Sequence Decoding
Sequence Decoding 题目描述 The amino acids in proteins are classified into two types of elements, hydrop ...
- PB笔记之数据窗口行不能编辑的原因
这里不打勾就不能编辑行
- my linux cmd
常用的linux命令 一.vi yy 复制当前行 u 撤销 p 粘贴 dd 删除当前行 set nu 显示行号 gg 首行 G 末行 二.用户管理相关 useradd 添加用户 (默认创建一个与用 ...
- Linux权限管理:setUID、setGID 和 Sticky BIT
1.setUID.setGID 和 Sticky BIT 的功能详解 setuid 功能: 1.只有可执行的二进制文件程序才能设定 SUID 权限(前提) 2.命令执行者要对该程序有执行(x)权限(必 ...
- poj 3252 数位dp
题意:一个二进制的数,如果0的个数大于1的个数,那么我们称这个数为Round Numbers,求给定区间(十进制表示)中Round Numbers的个数 题解:数位dp,不过这里枚举的时候lead标记 ...
- 节日营销!这样搞-App运营日常
节日送礼需求日益增长,当儿女们有了购买需求的时候,商家如何突出重围,成为孝子们的首选?如何做好节日营销?几个经验分享一下: 1.抓住节日特色 结合节日风格特色,营造节日气氛,如母亲节这种节日,主要体现 ...
- MD 使用 i5ting_toc 转换成 HTML
MD 使用 i5ting_toc 转换成 HTML 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Wed, 10 Jul 2019 13:59:00 +0800 前言 md ...
- FreeRTOS config开始的宏
FreeRTOSConfig.h系统配置文件中可以自定义,FreeRTOS.h中定义默认值 configAPPLICATION_ALLOCATED_HEAP 默认情况下FreeRTOS的堆内存是由编译 ...