普通视图

发现新文章,点击刷新页面。
昨天以前首页

加密 NFS 搭建保障数据传输与存储安全

2025年3月4日 00:00

在现代企业环境中,数据的安全性至关重要。NFS 作为一种广泛使用的文件共享协议,其数据在传输和存储过程中若是缺乏加密保护,将面临被窃取或篡改的风险。本文将详细介绍加密 NFS 搭建过程。

NFS 的简介

NFS 是允许用户通过网络访问远程文件系统,就像访问本地文件系统一样方便。

它支持跨平台文件共享,广泛应用于 Linux 和 Unix 系统。

然而,传统的 NFS 传输数据时以明文形式在网络中传输,很容易受到中间人攻击和数据泄露的威胁。

在 NFS 的基础上,我们可以使用加密技术来保护数据传输和存储。

加密 NFS 必要性

随着数据安全法规的日益严格和企业对数据保护的重视,对 NFS 进行加密变得必不可少。

在企业中,NFS 的加密功能可以提供数据传输和存储的安全保障。

加密 NFS 可有效防止数据在传输过程中被窃取或篡改,确保数据的完整性和机密性。

同时,它也可以满足企业对数据安全合规的要求,为企业的数据资产提供更可靠的保护。

搭建加密 NFS 的步骤

在 NFS 服务器安装支持加密的 NFS 软件包。例如,在基于 Debian 的系统上,可以使用下面命令进行安装:

1
sudo apt -y install nfs-kernel-server

使用下面的命令编辑 NFS 配置文件,添加加密相关选项。例如,可使用 sec = krb5isec = krb5p 选项来启用 Kerberos 加密。其中,krb5i 提供数据完整性保护,而 krb5p 则同时提供了数据加密和完整性保护:

1
sudo vim /etc/exports

在配置文件中指定要共享的目录及其访问权限。这表示允许客户端 IP 以读写模式访问共享目录,并启用 Kerberos 加密。例如:

1
/path/to/shared/directory client_ip(rw,sync,no_subtree_check,sec=krb5i)

完成配置后重启 NFS 服务。可以使用下面命令重启服务:

1
sudo systemctl restart nfs-kernel-server

使用下面的命令使配置文件生效:

1
exports -rv

在需访问加密 NFS 共享的客户端上安装 NFS 客户端软件。例如,在基于 Debian 的系统上,可以使用下面命令进行安装:

1
sudo apt -y install nfs-common

使用挂载命令将加密的 NFS 共享挂载到本地目录。这将把服务器上的共享目录挂载到客户端本地目录,并启用 Kerberos 加密。例如:

1
sudo mount -t nfs4 -o sec=krb5i server_ip:/path/to/shared/directory /local/mount/point

使用下面命令查看挂载文件系统,确保加密 NFS 共享已成功挂载:

1
df -h 

加密 NFS 优势与注意事项

加密 NFS 有多种优势,例如数据加密传输、身份认证和数据完整性保护等等。

它能够有效防止数据泄露和篡改,提高数据的安全性。

然而,在搭建加密 NFS 时也需要注意一些事项。

首先,加密过程可能会增加系统的性能开销,因此需根据实际需求进行性能评估和优化。

其次,配置过程较为复杂,需仔细检查配置文件和参数设置,确保正确无误。

此外,还需要定期更新加密软件和认证机制,以应对不断变化的安全威胁。

当了UP主四年多: 油管/Youtube上传了700多期视频, 2000个粉丝

2025年2月14日 03:46

youtube 当了UP主四年多: 油管/Youtube上传了700多期视频, 2000个粉丝 折腾 教娃 教育 育儿 视频

油管/Youtube

我曾经说过不想做UP主。后来觉得孩子大了,可以开始教他们编程,于是尝试了几节课,朋友建议把这些内容上传到油管,既能记录也能分享。我觉得这个主意不错,于是就开始了。前500期视频因为没有时间剪辑和加字幕,所以直接用iPhone拍好后就上传了。

到了500期后,我强迫自己开始剪辑,使用了手机上的“必剪”App和PC上的“剪影”软件,这两款都是字节跳动出品的。现在这两款软件的自动字幕功能已经不再免费了。

最初只上传到油管,后来也同步到了B站,接着又上传到西瓜视频、微信视频号,还尝试了小红书和微博视频。我把视频上传到这么多平台,主要是为了备份,利用这些免费的云存储多做些备份,同时还能赚点小钱。

不过要是真是按付出时间和挣得的钱来算,真是亏麻了。能挣钱的UP主并不是很多,大多数人还是不挣钱的,投入的时间和收入不成正比。我们总是在网上听人说挣了很多钱,这大概率是幸存者偏差,头部效应。UP主一旦停止更新,很有可能就会很快失去流量,失去流量就等于失去收入

到现在为止,油管还没达到YouTube Partner Program的收入门槛,B站的收入大概几千元,应该是前两年有过一些推广活动。西瓜视频提现过一次,应该也是两三千元,微信视频号的收入就几块钱。

目前,B站有四万多粉丝,油管只有2000个。留下来的都是铁杆粉丝。B站上我把所有的视频都放在一个账号里,包括教媳妇编程的内容;而在油管,我把中英文的内容分成了两个频道,也许是因为这个原因,油管/Youtube的公开观看时长不够。

我的频道:油管/Youtube | 中文油管频道/教媳妇 | B站/小破站 | 微博视频 | 西瓜视频 | 微信视频号 | X/推特 | 小红书

youtube-700-days 当了UP主四年多: 油管/Youtube上传了700多期视频, 2000个粉丝 折腾 教娃 教育 育儿 视频

油管上陆陆续续上传了700天,每期视频都几十次浏览,一两个Like/赞。

youtube-2000-subscribers 当了UP主四年多: 油管/Youtube上传了700多期视频, 2000个粉丝 折腾 教娃 教育 育儿 视频

终于在今年初过了2000个粉丝。

youtube-channel-day-1 当了UP主四年多: 油管/Youtube上传了700多期视频, 2000个粉丝 折腾 教娃 教育 育儿 视频

第一天上传视频是2020年11月22日,当时还在亚马逊AWS S3工作。

youtube-earning-public-watch-hours 当了UP主四年多: 油管/Youtube上传了700多期视频, 2000个粉丝 折腾 教娃 教育 育儿 视频

油管得YPP开通挣钱门槛需要3000/4000个小时公开观看时长。

教娃编程

本文一共 816 个汉字, 你数一下对不对.
当了UP主四年多: 油管/Youtube上传了700多期视频, 2000个粉丝. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 当了UP主四年多: 油管/Youtube上传了700多期视频, 2000个粉丝 折腾 教娃 教育 育儿 视频
The post 当了UP主四年多: 油管/Youtube上传了700多期视频, 2000个粉丝 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  4. 英国房子的EPC节能报告(Energe/Efficiency Performance Certificate) EPC (Energe/Efficiency Performance Certificate) 是英国房子的节能报告, 法律上规定, 每个房子都必须要有一个EPC报告, 报告的有效期为十年. 房东在把房子出租或者想卖房的时候, 这个EPC就必须有效, 在一些情况下 比如出租房子的时候, 这个EPC报告还必须符合一些最低标准, 比如房子必须满足 F档(类似及格线)...
  5. 公司请的专业摄影师 公司来了新的CEO管理之后,很多事情都不一样了, 特别是一些公司对外形象的事情就特别的在意, 比如公司网站用上SSL.现在公司还有空闲的位置,请速来(钱多人不傻). 一月份出差回LUTON,刚好公司请来摄影师给高层管理照像放网站上的,于是我也凑了凑热闹(但是却还不够资格被放在公司网站上),不过没关系,放这里也差不多. 人到中年, 沧桑感强了些. 更新更新: 同事用他NB的单反给谢菲尔得办公室的人也拍了一组这样的照片.看起来很不错, 很专业,灯光,道具应有尽有.我已经用在了LINKEDIN页面上,立马高大上. 本文一共 230 个汉字, 你数一下对不对. 公司请的专业摄影师. (AMP...
  6. 面向猫猫编程 Cat Oriented Programming (Chessly/Pyro这一生持续更新) 家里有两只猫 Chessly/Pyro,想着找个地方记录它们的生活,最后决定还是写在这里的博客。猫的一生很短,差不多也就二十年。 Chessly(黑白猫)是我加入微软剑桥研究院MSRC第一个月带回家的,过了两三个月,又把Pyro(橘猫)也接回了家。两只猫的名字是孩子们取的:Chessly因为黑白的像棋盘,加上“ly”听起来像个女孩的名字;而Pyro的意思是一团火(烟火),充满活力。 刚开始的时候,Chessly特别喜欢待在我的工作区域。她有时候趴在键盘上或旁边,有时候藏在显示器后面。偶尔还会绕到我身边“咕咕”地撒娇,等着我去摸她。有时更干脆跑到我腿上,舒舒服服地躺着。 不过,现在它们俩的体型都大了很多,躺在桌上就会挡住屏幕,真是“面向猫猫编程”(Cat Oriented Programming)的极致体验。 记录生活的点滴,也是一种珍惜,毕竟这二十年,我们会一起走过。 2024年 2025年 Ring视频:两猫日常就是打闹,Chessly追上Pyro想舔他,在猫的世界里,地位高的才能舔地位低的。 我家猫现在越来越胖,很喜欢在我工作的时候躺在显示器钱,很影响我的工作,不过这时候我就是会休息一下摸摸她,就当放松一下了。 Pyro在窗边喝水,这是个小的煮饭锅,现在不用了,就给猫当喝水的碗。Pyro很胆小,经常看到我就跑。没法跑就咕咕叫。 Chessly很喜欢陪我工作,然后她很好厅的盯着屏幕上的鼠标光标,真怕她把屏幕抓坏了。 哥哥弹琴,弟弟唱歌,Chessly午睡,真是幸福啊,下辈子做只猫吧。...
  7. 在英国给孩子换学校的经历: 孩子离开了村里的小学 由于搬了家, 孩子上学得提前半小时出门了, 因为早上堵, 也得开车半小时才能到. 之前在 Fen Drayton 村庄上小学, 早上8:45学校门开, 9点敲钟孩子排队依次进入教室, 我们由于在村里, 只需要提前5分钟出门和孩子一起走路就可以了. 现在一下子早上变得很匆忙, 得叫孩子起床, 做早饭,...
  8. 公司给配了台高配DELL笔记本 早上例会结束的时候我顺便说了一句 我的笔记本有点慢, 当时我并不知道我的经理远程用电话也参加会议了(他全程在听), senior staff SE 对着电话说, “peter, you hear that? btw, my disks are...

在 Windows10 挂载 iSCSI 客户端

2021年2月1日 00:00

上一篇我们讲解了如何在群晖中创建 iSCSI 服务端,今天杜老师将演示,如何在 Windows10 挂载 iSCSI 客户端,感兴趣的小伙伴可以试一下!

操作流程

点击左下角的开始图标,直接输入 iSCSI 使用搜索功能找到 iSCSI 发起程序,点击打开:

首次运行时会提示服务处于关闭状态,需要开启才可以继续使用该服务,点是:

在弹出的 iSCSI 发起程序界面中找到目标,将群晖 NAS 访问地址,填在后面的输入框,然后点击快速连接:

快速连接工具会自动连接到目标 iSCSI 上,并弹出已连接提示,点击完成:

这时我们可以在之前的页面中看到已连接的 iSCSI,点击确认即可:

进入到计算机管理界面,找到左侧存储——磁盘管理:

点击进入后即可对挂载好的 iSCSI 进行初始化设置:

之后可以根据需求,对其进行分区格式化等操作:

注意事项

iSCSI 是通过网络映射存储,所以墙裂建议只做数据存储使用,不要将运行的程序安装在该磁盘,不然会严重影响系统的运行效率!

另外存储分享默认是无需身份验证的,如果您的 iSCSI 服务支持外网访问,强烈建议通过端口转发或者防火墙的形式,限制外网对 iSCSI 服务访问。

在 CentOS8 挂载 iSCSI 客户端

2021年1月26日 00:00

我们在上篇文章中,讲解如何在 CentOS8 系统搭建 iSCSI 服务端。在本篇中,我们讲一下如何进行客户端挂载。如有任何问题,欢迎在评论区与杜老师交流!

工具安装

1
2
3
4
5
6
[root@localhost ~]# dnf -y install iscsi-initiator-utils
上次元数据过期检查:0:32:16 前,执行于 20210124日 星期日 034812秒。
软件包 iscsi-initiator-utils-6.2.0.878-5.gitd791ce0.el8.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!

注意:可使用命令 dnf -y install iscsi-initiator-utils 安装,带 GUI 的服务器默认会安装该工具。

编辑文件

1
2
3
[root@localhost ~]# vim /etc/iscsi/initiatorname.iscsi
[root@localhost ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2021-01.com.dusays:init

注意:使用命令 vim /etc/iscsi/iscsid.conf 修改配置文件的内容。

启动服务

1
2
3
4
5
[root@localhost ~]# systemctl start iscsi
[root@localhost ~]# systemctl enable iscsi
[root@localhost ~]# systemctl start iscsid
[root@localhost ~]# systemctl enable iscsid
Created symlink /etc/systemd/system/multi-user.target.wants/iscsid.service → /usr/lib/systemd/system/iscsid.service.

注意:iscsi 与 iscsid 都需要启动,默认系统会启动 iscsi,要记得手动启用 iscsid。

挂载存储

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.130
192.168.1.130:3260,1 iqn.2021-01.com.dusays:www
[root@localhost ~]# iscsiadm -m node --login
Logging in to [iface: default, target: iqn.2021-01.com.dusays:www, portal: 192.168.1.130,3260]
Login to [iface: default, target: iqn.2021-01.com.dusays:www, portal: 192.168.1.130,3260] successful.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─cl-root 253:0 0 17G 0 lvm /
└─cl-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk

注意:使用命令 iscsiadm -m discovery -t sendtargets -p 192.168.1.130 显示指定服务器的存储信息,使用命令 iscsiadm -m node --login 实现 iSCSI 映射。可通过命令 lsblk 查看结果。

在 CentOS8 搭建 iSCSI 服务器

2021年1月23日 00:00

在前文中,我们讲解了 iSCSI 相关概念。本文将展示如何在 CentOS8 上配置 iSCSI 存储服务器,如遇任何问题,欢迎在评论区与杜老师交流,让我们开始吧!

服务安装

使用 dnf 命令安装 targetcli:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
[root@localhost ~]# dnf -y install targetcli
上次元数据过期检查:1:49:08 前,执行于 2021年01月24日 星期日 01时34分43秒。
依赖关系解决。
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
安装:
targetcli noarch 2.1.53-1.el8 appstream 80 k
安装依赖关系:
python3-configshell noarch 1:1.1.28-1.el8 baseos 72 k
python3-kmod x86_64 0.9-20.el8 baseos 90 k
python3-pyparsing noarch 2.1.10-7.el8 baseos 142 k
python3-rtslib noarch 2.1.73-2.el8 baseos 102 k
python3-urwid x86_64 1.3.1-4.el8 baseos 783 k
target-restore noarch 2.1.73-2.el8 baseos 24 k

事务概要
================================================================================
安装 7 软件包

总下载:1.3 M
安装大小:4.7 M
下载软件包:
(1/7): targetcli-2.1.53-1.el8.noarch.rpm 68 kB/s | 80 kB 00:01
(2/7): python3-pyparsing-2.1.10-7.el8.noarch.rp 538 kB/s | 142 kB 00:00
(3/7): python3-configshell-1.1.28-1.el8.noarch. 50 kB/s | 72 kB 00:01
(4/7): python3-kmod-0.9-20.el8.x86_64.rpm 62 kB/s | 90 kB 00:01
(5/7): python3-rtslib-2.1.73-2.el8.noarch.rpm 1.1 MB/s | 102 kB 00:00
(6/7): target-restore-2.1.73-2.el8.noarch.rpm 319 kB/s | 24 kB 00:00
(7/7): python3-urwid-1.3.1-4.el8.x86_64.rpm 3.7 MB/s | 783 kB 00:00
--------------------------------------------------------------------------------
总计 449 kB/s | 1.3 MB 00:02
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : python3-urwid-1.3.1-4.el8.x86_64 1/7
安装 : python3-pyparsing-2.1.10-7.el8.noarch 2/7
安装 : python3-configshell-1:1.1.28-1.el8.noarch 3/7
安装 : python3-kmod-0.9-20.el8.x86_64 4/7
安装 : python3-rtslib-2.1.73-2.el8.noarch 5/7
安装 : target-restore-2.1.73-2.el8.noarch 6/7
运行脚本: target-restore-2.1.73-2.el8.noarch 6/7
安装 : targetcli-2.1.53-1.el8.noarch 7/7
运行脚本: targetcli-2.1.53-1.el8.noarch 7/7
验证 : targetcli-2.1.53-1.el8.noarch 1/7
验证 : python3-configshell-1:1.1.28-1.el8.noarch 2/7
验证 : python3-kmod-0.9-20.el8.x86_64 3/7
验证 : python3-pyparsing-2.1.10-7.el8.noarch 4/7
验证 : python3-rtslib-2.1.73-2.el8.noarch 5/7
验证 : python3-urwid-1.3.1-4.el8.x86_64 6/7
验证 : target-restore-2.1.73-2.el8.noarch 7/7
Installed products updated.

已安装:
python3-configshell-1:1.1.28-1.el8.noarch python3-kmod-0.9-20.el8.x86_64
python3-pyparsing-2.1.10-7.el8.noarch python3-rtslib-2.1.73-2.el8.noarch
python3-urwid-1.3.1-4.el8.x86_64 target-restore-2.1.73-2.el8.noarch
targetcli-2.1.53-1.el8.noarch

完毕!

输入 targetcli 命令后会提示配置文件不存在,使用 exit 会自动生成配置文件:

1
2
3
4
5
6
7
8
9
[root@localhost ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> exit
Global pref auto_save_on_exit=true
Configuration saved to /etc/target/saveconfig.json

服务启动

启动服务:

1
[root@localhost ~]# systemctl start target

设置开机启动:

1
2
[root@localhost ~]# systemctl enable target
Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /usr/lib/systemd/system/target.service.

创建存储

这里我们以/dusays/目录为例,使用命令 /backstores/fileio create dusays /dusays/dusays.img 1G 创建名为 dusays 的 1G 大小存储文件,创建后通过 ls 查看执行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@localhost ~]# mkdir /dusays
[root@localhost ~]# targetcli
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> backstores/fileio/ create www /dusays/www.img 1G
Created fileio www with size 1073741824
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 0]
| o- fileio ............................................. [Storage Objects: 1]
| | o- www ................. [/dusays/www.img (1.0GiB) write-back deactivated]
| | o- alua ............................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 0]
o- loopback ..................................................... [Targets: 0]

接下来我们创建名为 iqn.2021-01.com.dusays:www 的 iSCSI 文件,一般命名规则为 iqn.年份-月份.网址倒叙:存储文件名称,完整命令为 /iscsi create iqn.2021-01.com.dusays:www,创建后通过 ls 查看执行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/> iscsi/ create iqn.2021-01.com.dusays:www
Created target iqn.2021-01.com.dusays:www.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 0]
| o- fileio ............................................. [Storage Objects: 1]
| | o- www ................. [/dusays/www.img (1.0GiB) write-back deactivated]
| | o- alua ............................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2021-01.com.dusays:www .................................... [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 0]
| o- luns ...................................................... [LUNs: 0]
| o- portals ................................................ [Portals: 1]
| o- 0.0.0.0:3260 ................................................. [OK]
o- loopback ..................................................... [Targets: 0]

创建 LUN 号

从先前创建的 www 存储中创建 LUN 号,命令为 iscsi/iqn.2021-01.com.dusays:www/tpg1/luns/ create /dusays/www.img,创建后通过 ls 查看执行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/> iscsi/iqn.2021-01.com.dusays:www/tpg1/luns/ create /dusays/www.img
Created storage object dusays-www.img.
Created LUN 0.
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 0]
| o- fileio ............................................. [Storage Objects: 2]
| | o- dusays-www.img ........ [/dusays/www.img (1.0GiB) write-thru activated]
| | | o- alua ............................................... [ALUA Groups: 1]
| | | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| | o- www ................. [/dusays/www.img (1.0GiB) write-back deactivated]
| | o- alua ............................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2021-01.com.dusays:www .................................... [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 0]
| o- luns ...................................................... [LUNs: 1]
| | o- lun0 . [fileio/dusays-www.img (/dusays/www.img) (default_tg_pt_gp)]
| o- portals ................................................ [Portals: 1]
| o- 0.0.0.0:3260 ................................................. [OK]
o- loopback ..................................................... [Targets: 0]

为启动器 iqn.2021-01.com.dusays:www 创建 ACL,以便 iSCSI 客户端可以访问此目标中的 LUN,命令为 iscsi/iqn.2021-01.com.dusays:www/tpg1/acls create iqn.2021-01.com.dusays:init 通过 ls 查看执行结果,通过 saveconfig 保存所有的配置,并使用 exit 退出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/> iscsi/iqn.2021-01.com.dusays:www/tpg1/acls create iqn.2021-01.com.dusays:init
Created Node ACL for iqn.2021-01.com.dusays:init
Created mapped LUN 0.
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 0]
| o- fileio ............................................. [Storage Objects: 2]
| | o- dusays-www.img ........ [/dusays/www.img (1.0GiB) write-thru activated]
| | | o- alua ............................................... [ALUA Groups: 1]
| | | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| | o- www ................. [/dusays/www.img (1.0GiB) write-back deactivated]
| | o- alua ............................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2021-01.com.dusays:www .................................... [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 1]
| | o- iqn.2021-01.com.dusays:init ...................... [Mapped LUNs: 1]
| | o- mapped_lun0 ................... [lun0 fileio/dusays-www.img (rw)]
| o- luns ...................................................... [LUNs: 1]
| | o- lun0 . [fileio/dusays-www.img (/dusays/www.img) (default_tg_pt_gp)]
| o- portals ................................................ [Portals: 1]
| o- 0.0.0.0:3260 ................................................. [OK]
o- loopback ..................................................... [Targets: 0]
/> saveconfig
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json

iSCSI 概念及原理

2021年1月20日 00:00

iSCSI 是一种由 IBM 公司研究开发的 IP SAN 技术,该技术是将现有 SCSI 接口与以太网络技术相结合,基于 TCP/IP 的协议连接 iSCSI 服务端和客户端,使得封装后的 SCSI 数据包可以在通用互联网传输,最终实现 iSCSI 服务端映射为一个存储空间提供给已连接认证后的客户端。

什么是 SCSI

SCSI 是种 I/O 技术,规范一种并行的 I/O 总线和相关的协议,SCSI 数据传输是以块的方式进行的。

SCSI 总线通过 SCSI 控制器来和硬盘之类的设备进行通信, SCSI 的控制器称为 Target,访问客户端应用称为 Initiator。

窄 SCSI 总线最多允许 8 个、宽 SCSI 总线最多允许 16 个不同的 SCSI 设备和它进行连接,每个 SCSI 设备都必须有自己唯一的 SCSI ID 设备的地址。

LUN 逻辑单元号,是为使用和描述更多设备及对象而引进的一个方法,每个 SCSI ID 上最多有 32 个 LUN,一个 LUN 对应了一个逻辑设备。

iSCSI 的实现

  1. iSCSI Initiator 客户端。iSCSI 启动器,本质上说,iSCSI 启动器是一个客户端设备,用于将请求连接并启动到服务器。iSCSI 的启动器有三种实现方式,可以完全基于硬件实现,比如 iSCSI HBA 卡,硬件 TOE 卡与软件结合的方式,完全基于软件实现,而且软件 iSCSI 启动器适用于大部分主流操作系统平台;

  2. iSCSI Target 服务端。即 iSCSI 目标,它是 iSCSI 网络服务器组件,用于包含所需要的数据并回应来自 iSCSI 启动器的请求。

工作过程

Initiator 发出请求后,会在本地的操作系统会生成了相应的 SCSI 命令和数据 I/O 的请求,然后这些命令和请求被封装加密成为 IP 信息包,通过以太网 TCP/IP 传输到 Targer。

当 Targer 接收到信息包,将进行解密和解析,将 SCSI 命令和 I/O 请求分开。SCSI 命令被发送到 SCSI 的控制器,再传送到 SCSI 的存储设备。

设备执行 SCSI 命令的响应,经过 Target 封装成 iSCSI 响应 PDU,再通过已连接的 TCP/IP 网络传送给 Initiator。

Initiator 会从 iSCSI 响应 PDU 里解析出 SCSI 响应并传送给操作系统,操作系统再响应给应用程序。

与 NFS 比较

SAN 与 NAS 是完全不相同架构的存储方案,SAN 支持 Block 协议,后者则支持 File 协议;SAN 结构中,文件管理系统还是分别在每一个应用服务器上,会产生 I/O 操作,而 NAS 则是每个应用服务器通过网络共享协议使用同一个文件管理系统,所以 CPU 密集型的应用可以选用 NAS。SAN 是将目光集中在磁盘、磁带以及联接它们的可靠的基础结构,NAS 是将目光集中在应用、用户和文件及它们共享的数据上。

以上区别具体到 iSCSI 和 NFS。iSCSI 可优化空间更大,性能稍好,但是技术难度更高;而 NFS 在系统层面的支持更多,例如一些备份、恢复等操作较简单。

文字是最实在的

2024年9月30日 11:21

小时候家长或者老师要求你写日记是一回事,长大了以后自己主动要做一个blog又是另外一回事。前一件事,那是上面要求的,总有种抗拒的心理,到现在为止,如果某件事不是我主动去做,而是别人强制的,我依然会有抗拒心理。主动做一件事,出来的效果完全不一样。我觉得那些主动写日记的孩子,尤其是把纸质日记本做得很漂亮,做成了手账的孩子,他们一定不会觉得做那个东西是一个负担。当然,如果那个手账不是他们发自内心,而是被强制要求的,另当别论。现在我依然没办法理解那些在课本边边角角涂鸦各种东西的人的脑洞,为什么可以这样?所以你要我做手账,你要我在文字的前后左右画花花绿绿,贴上各种好玩的东西,甚至把那个东西搞成立体的,对我来说太难了。有时我觉得自己是一个矛盾体,首先我的脑洞完全就是一个理科生,但是在写blog这个问题上,不用其它形式,光靠文字,这感觉又很文科。因为实际上某些东西可能做个表做个图或者涂鸦一下,更能表达,但貌似我就是不太擅长用那些东西输出,文字才是我最强有力的武器。

之所以选择文字,另外一个原因可能是抠门。文字,无论是写下来还是存储下来,所占的空间都非常小。我轻而易举就可以把它们移动,把它们以各种方式保存,但如果我存下来的是图片视频又或者是其它多媒体,我就很难保证我能不能完整地把它们存下来,而且存很多个版本,因为保存那些东西要付出代价。在U盘还没有那么大的年代,只能存在硬盘里,存到一定程度就刻录成光盘,但无论是硬盘还是光盘,都会有一定的寿命,但因为那些东西可能太多,你不可能把那上传到某个地方,哪怕你已经很保险上传到很多个网盘。很早以前我就已经意识到这个问题,所以我尽量不用多媒体,但有些东西你只能用多媒体,比如橡皮章,除了图片,没办法表达那个东西。因为我的blog运营时间足够长,所以我经历了很多这样那样的丢失。图片很多,但图片放在哪里呢?BlogBus自己的空间吗?但是那里根本放不下我那么多的图片,于是我就用外链的方式,放在各种图床,结果我用的那些图层一个又一个挂掉,最终结果就是引用的那些东西,全部都不可打开。最后好不容易换到WordPress,算是自己说了算,但关键是图片太多,当你一看备份的文件,会发现原来那个东西占很多地方,占很多地方的后果就是会让我搬家非常不方便。当然了,搬家这种事不经常干,而如果我不把图片存在WordPress自己的网站里而存到外面,结果会跟之前跟那些图床一样,某一天就打不开了。归根到底,我得出了一个结论,文字是最佳的长期储存方式。

大概现在的人都比较习惯于视觉冲击,喜欢看图,喜欢看短视频,但我的经验告诉我,那些东西都是过眼云烟,很快就会被忘掉,很快就会找不到。哪怕你觉得现在你在一个比较大的服务商那里,但说不准每一天那就挂了。如果你没见识过这种,只能说那是因为你经历的时间还不够长。

我早就不在乎别人怎么看了,但我知道我正在做正确的是以前在做,现在在做,以后也要一直做。

❌
❌