iSCSI网络磁盘 默认端口:3260
• Internet SCSI,网际SCSI接口
– 一种基于C/S架构的虚拟磁盘技术
– 服务器提供磁盘空间,客户机连接并当成本地磁盘使用
• backstore,后端存储 /dev/vdb1 大电视
– 对应到服务端提供实际存储空间的设备,需要起一个管理名称
• target,磁盘组 木质箱子
– 是客户端的访问目标,作为一个框架,由多个lun组成
• lun,逻辑单元 (将 大电视+纸制 放入 木质箱子 )
– 每一个lun需要关联到某一个后端存储设备,在客户端
会视为一块虚拟硬盘
大电视-----》纸制包装-------》木质箱子
• ISCSI Qualified Name 名称规范 (iqn)
– iqn.yyyy-mm.倒序域名:自定义标识
– 用来识别 target 磁盘组,也用来识别客户机身份
虚拟机Server0:
一、利用fdisk命令划分一个新的分区 5G,用于共享iSCSI磁盘
[root@server0 ~]# lsblk
[root@server0 ~]# ls /dev/vdb1
二、安装targetcli软件包,提供共享iSCSI磁盘
[root@server0 ~]# yum -y install targetcli
三、运行targetcli进行配置
[root@server0 ~]# targetcli #进入共享iSCSI磁盘配置模式
1.建立backstore,后端存储 (大电视----->纸制包装)
/> backstores/block create name=nsd dev=/dev/vdb1
Created block storage object nsd using /dev/vdb1.
后端存储/块设备 创建 名称(纸制包装) 设备(大电视)
/> ls
2.建立target磁盘组 (建立 木质的箱子)
/> iscsi/ create iqn.2018-11.com.example:server0
Created target iqn.2018-11.com.example:server0.
Created TPG 1.
命名规范:iqn.yyyy-mm.倒序域名:自定义标识
/> ls
3.配置lun关联 (将 大电视+纸制包装 放入 木质的箱子)
/> iscsi/iqn.2018-11.com.example:server0/tpg1/luns create /backstores/block/nsd
Created LUN 0.
/> ls
/> exit
4.配置访问控制:设置客户端声称的名字
[root@server0 ~]# targetcli
/> iscsi/iqn.2018-11.com.example:server0/tpg1/acls create iqn.2018-11.com.example:desktop0
Created Node ACL for iqn.2018-11.com.example:desktop0
Created mapped LUN 0.
/> ls
5.启用IP地址与端口
/> iscsi/iqn.2018-11.com.example:server0/tpg1/portals create 172.25.0.11
Using default IP port 3260
Created network portal 172.25.0.11:3260.
本机的172.25.0.11端口为3260提供,相应的共享存储服务
/> exit
三、服务端重起服务
[root@server0 ~]# systemctl restart target
[root@server0 ~]# systemctl enable target
ln -s '/usr/lib/systemd/system/target.service' '/etc/systemd/system/multi-user.target.wants/target.service'
################################################
客户端虚拟机Desktop0:
1.安装软件包,访问共享存储服务
• 所需软件包:iscsi-initiator-utils
yum仓库安装包名的补全: 1.本机没有安装此包 2.Yum具备缓存
yum repolist:可以生成Yum具备的缓存
[root@desktop0 ~]# rpm -q iscsi-initiator-utils
iscsi-initiator-utils-6.2.0.873-21.el7.x86_64
[root@desktop0 ~]# yum repolist #生成Yum具备的缓存
[root@desktop0 ~]# yum -y install isc(tab)
2.进行配置客户端声称的名字
]# vim /etc/iscsi/in(tab)
InitiatorName=iqn.2018-11.com.example:desktop0
3.重起iscsid服务,专门刷新 客户端声称的名字
[root@desktop0 ~]# systemctl restart iscsid
Warning: Unit file of iscsid.service changed on
disk, 'systemctl daemon-reload' recommended.
[root@desktop0 ~]# systemctl daemon-reload
[root@desktop0 ~]# systemctl restart iscsid
4.运行命令,发现共享存储
通过 man iscsiadm 帮助进行参考
/example 全文查找example 然后按n进行跳转
ctrl shift + = 终端全屏,放大字体
ctrl - = 终端全屏,缩小字体
[root@desktop0 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover
5.重起iscsi服务,加载共享存储
[root@desktop0 ~]# lsblk
[root@desktop0 ~]# systemctl restart iscsi
[root@desktop0 ~]# lsblk
[root@desktop0 ~]# systemctl enable iscsi
###############################################
总结:
虚拟机Server0:服务端
1.修改防火墙默认区域为trusted
2.安装软件包targetcli
3.运行targetcli进行配置
1)建立后端存储
2)建立target磁盘组(iqn命名)
3)进行lun关联
4)配置ACL访问控制,设置客户端声称的名字(iqn命名)
5)启用IP地址与端口(设置本机利用哪一个IP地址,进行提供服务)
4.重起target服务
虚拟机Desktop0:客户端
1.防火墙设置为默认区域trusted
2.安装所需软件包:iscsi-initiator-utils
3.修改配置文件指定客户端声称的名字(/etc/iscsi/in(tab) )
4.重起iscsid服务 刷新客户端声称的名字
5.运行命令发现共享存储
[root@desktop0 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover
6.重起iscsi服务,加载共享存储
################################################
MariaDB数据库的管理
DB:database
数据库:存放数据的仓库
在数据库中,会有很多的库,在每一个库中会有很多的表格
一、部署mariadb数据库服务器 默认端口:3306
• RHEL7 中的 MariaDB 相关包
– mariadb-server:提供服务端有关的系统程序
################################################
二、数据库基本操作
[root@server0 ~]# mysql #进入数据库
> show databases; #显示所有库
> create database nsd1810; #创建nsd1810库
> show databases; #显示所有库
> drop database nsd1810; #删除nsd1810库
> show databases;
> create database nsd; #创建nsd库
> show databases;
> exit
#############################################
三、为数据库管理员设置密码
数据库管理员:账户:root 用户信息存放在mysql库中user表中
系统管理员:账户:root 用户信息存放在/etc/passwd
• 为数据库账号修改密码
– mysqladmin [-u用户名] [-p[旧密码]] password '新密码'
]# mysqladmin -u root password '123'
[root@server0 ~]# mysql -u root -p #交互式进入
Enter password:
[root@server0 ~]# mysql -u root -p123 #非交互式验证
################################################
• 禁止监听,只服务于本机
[root@server0 ~]# vim /etc/my.cnf #主配置文件
[mysqld]
skip-networking //跳过网络监听
.. ..
[root@server0 ~]# systemctl restart mariadb
################################################
四、表格的操作 :表字段 表记录
增(insert) 删 (delete) 改(update) 查(select)
虚拟机classroom:数据库 表格的备份文件
[root@server0 ~]# wget http://classroom.example.com/pub/materials/users.sql
[root@server0 ~]# ls users.sql
• 导入/恢复到数据库
– mysql [-u用户名] [-p[密码]] 数据库名 < 备份文件.sql
]# mysql -u root -p123 nsd < users.sql
[root@server0 ~]# mysql -u root -p123
> use nsd; #切换到nsd库
> show tables; #显示有那些表格
> select 表字段 from 表名;
> select * from base; #查看base表所有表字段内容
> select * from location; #查看location表所有表字段内容
where有条件的查询
> use nsd; #切换到nsd库
> show tables; #显示有那些表格
> select * from base where name='tom';
> select * from base where passowrd='123';
> select * from base where passowrd='456';
> select name,password from base;
查看表结构desc
> use nsd;
> desc base; #查看base表结构
> use mysql; #切换到mysql库中
> select * from nsd.base; #查询nsd库中base表
> desc user; #查看user表结构
> select user,host,password from user;
################################################
五、数据库的授权
除了root用户,此数据库nsd只能被用户lisi查询,此用户的密码为123
– GRANT 权限列表 ON 数据库名.表名 TO 用户名@
客户机地址 IDENTIFIED BY '密码';
grant select on nsd.* to lisi@localhost identified by '123';
当lisi从localhost登陆,输入密码123,将会获得nsd库所有表的查询权限
[root@server0 ~]# mysql -u root -p123
> grant select on nsd.* to lisi@localhost identified by '123';
> select user,host,password from mysql.user;
[root@server0 ~]# mysql -u lisi -p123
> show databases;
> select * from nsd.base;
> drop database nsd;
ERROR 1044 (42000): Access denied for user 'lisi'@'localhost' to database 'nsd'
> exit
Bye
案例5:使用数据库查询
2. 在系统 server0 上使用数据库 nsd,并使用相
应的 SQL 查询以回答下列问题:
1)密码是 solicitous 的人的名字?
[root@server0 ~]# mysql -u root -p123
> use nsd;
> select * from base where password='solicitous';
> select name from base where password='solicitous';
2) 有多少人的姓名是 Barbara 同时居住在 Sunnyvale?
> select * from base,location where
base.name='Barbara' and
location.city='Sunnyvale' and
base.id=location.id;
1. 禁止空密码root用户访问 mariadb 数据库
[root@server0 ~]# mysql -u root -p123
> select user,host,password from mysql.user;
> select user,host,password from mysql.user where password='';
> delete from mysql.user where password=''; #删除表记录
> select user,host,password from mysql.user;
> flush privileges; 刷新数据库user表记录
> exit
]# mysql -u root -h server0.example.com #访问失败
#############################################