iSCSI服務基礎
Internet SCSI, 網際SCSI藉口
一種基於C/S架構的虛擬磁盤技術
服務器提供磁盤空間,客戶機連接並當成本地磁盤使用
iSCSI Qualified Name 名稱規範
iqn.yyyy-mm.倒序域名:自定義標識
用來識別target裁判組,也用來識別客戶機身份
服務端虛擬機Server0
劃分分區/dev/vdb
[root@server0 ~]# fdisk /dev/vdb
安裝服務端軟件包
[root@server0 ~]# yum -y install targetcli
運行targetcli,進入交互式界面
//建立後端設備:/backstore/block create 後端存儲名 實際設備路徑
//建立磁盤組名稱:/iscisi create 磁盤組的IQN名稱
//將分區與箱子建立連接:/iscsi/磁盤組名/tpg1/luns create 後端存儲路徑
//指定提供服務的IP地址:/iscsi/磁盤組名/tpg1/portals create IP地址 端口號
//訪問控制的設置:/iscsi/磁盤組名/tpg1/acls create 客戶機IQN標識
[root@server0 ~]# targetcli
/> backstores/block create iscsi_nsd /dev/vdb1
/> /iscsi/ create iqn.2018-03.com.example:server0
/> /iscsi/iqn.2018-03.com.example:server0/tpg1/luns create /backstores/block/iscsi_nsd
/> /iscsi/iqn.2018-03.com.example:server0/tpg1/portals create 172.25.0.11 3260
/> /iscsi/iqn.2018-03.com.example:server0/tpg1/acls create iqn.2018-03.com.example:desktop0
重啓服務
[root@server0 ~]# systemctl restart target #重啓服務
[root@server0 ~]# systemctl enable target #開機自啓
客戶端虛擬機desktop0
安裝客戶端軟件
[root@desktop0 ~]# yum repolist
[root@desktop0 ~]# yum -y install iscsi-initiator-utils.i686
設置客戶端訪問時生成的名字
[root@desktop0 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-03.com.example:desktop0
刷新客戶端iqn名字
[root@desktop0 ~]# systemctl daemon-reload
[root@desktop0 ~]# systemctl restart iscsid #刷新IQN標識(可以沒有d)
[root@desktop0 ~]# systemctl enable iscsid
加載iscsi共享存儲,訪問服務端(# man iscsiadm)
[root@desktop0 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover
172.25.0.11:3260,1 iqn.2018-03.com.example:server0
[root@desktop0 ~]# systemctl restart iscsi
[root@desktop0 ~]# lsblk
數據庫服務基礎
構建數據庫系統
什麼是數據庫:存放數據的倉庫
表字段:表頭
表記錄:表內容,行
部署mariadb數據庫服務器
RHEL7中的MariaDB相關包
-mariadb-server:提供服務端有關的系統程序
-mariadb:提供客戶端及管理工具
端口:3306
搭建基本的數據庫
安裝mariadb-server
[root@server0 ~]# yum -y install mariadb-server.x86_64
開啓數據庫
[root@server0 ~]# systemctl restart mariadb
[root@server0 ~]# systemctl enable mariadb
進入MarisDB數據庫,基本操作
[root@server0 ~]# mysql
MariaDB [(none)]> show databases; #列出數據庫
MariaDB [(none)]> create database nsd; #新建數據庫
MariaDB [(none)]> drop database nsd; #刪除數據庫
MariaDB [(none)]> use 數據庫名; #使用選擇數據庫
MariaDB [(none)]> show tables; #列出數據庫裏有哪些表格
MariaDB [(none)]> exit;
設置MarisDB數據庫管理員的密碼
#mysql [-u用戶名] [-p密碼]
#mysqladmin [-u 用戶名] [-p[舊密碼]] password '新密碼'
數據庫root管理員與系統管理員root不是同一個用戶
數據庫管理員root:mysql庫中user表
系統管理員root:/etc/passwd
[root@server0 ~]# mysqladmin -u root password '123'
[root@server0 ~]# mysql -u root -p123
禁止監聽,只服務於本機
[root@server0 ~]# vim /etc/my.cnf
[mysqld]
skip-networking
導入數據庫的數據
[root@server0 ~]# wget http://classroom.example.com/pub/materials/users.sql
[root@server0 ~]# mysql -u root -p123 nsd1802 < /root/users.sql
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> use nsd1802; #使用選擇數據庫
MariaDB [nsd1802]> show tables; #列出數據庫裏有哪些表格
數據庫用戶授權設置
-grant 權限列表 on 數據庫名.表名 to 用戶名@客戶機地址 identified by '密碼';
MariaDB [(none)]>grant select on nsd1802.* to Raikon@localhost identified by '123';
表格的四種操作:增(insert)、刪(delete)、改(update)、查(select)
MariaDB [nsd1802]> select * from location; #查看location表格內容
MariaDB [nsd1802]> select * from base; #查看base表格內容
查看錶結構(適合大文件):desc 數據庫名;
基本管理操作
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> use nsd1802;
有條件的查詢
MariaDB [nsd1802]> select * from base where password='solicitous' and id='3';
MariaDB [nsd1802]> select name from base where password='solicitous';
多表聯合查詢
有多少人的姓名時Barbara同時居住再Sunnyvale?
MariaDB [nsd1802]> select * from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id;
MariaDB [nsd1802]> select count(*) from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id; #加入統計
插入
MariaDB [nsd1802]> insert base values (6,'Barbara','321');
MariaDB [nsd1802]> select * from base;
MariaDB [nsd1802]> insert location values (6,'Sunnyvale');
MariaDB [nsd1802]> select * from location;
禁止空密碼root用戶訪問mariadb數據庫
MariaDB [nsd1802]> use mysql;
MariaDB [mysql]> select user,host,password from user;
MariaDB [mysql]> select user,host,password from user where password='';
MariaDB [mysql]> delete from user where password=''; #刪除記錄
MariaDB [mysql]> flush privileges; #刷新數據庫策略
[root@server0 ~]# mysql -u root -h server0.example.com #測試網絡登陸