Windows Server 2022 存储实战:存储空间、iSCSI 与重复数据删除
这是「Windows Server 2022 虚拟机学习实验」系列第 9 篇。存储是服务器的另一半:前面玩的都是"算",这篇玩"存"。先打快照:
存储实验前。本篇图形界面为主:存储池向导、磁盘管理、iSCSI 发起方全是鼠标的活。
生产环境的存储动辄几十块盘、RAID 卡、SAN 网络,实验环境用 3 块虚拟硬盘就能把核心概念跑通:存储池化、网络块存储、重删。这篇的三样东西,第 10 篇的故障转移群集全都用得上。
一、实验准备:给 VM 加 3 块盘(图形界面)
🖱️ 图形界面做法(在外层 Hyper-V 管理器里,先关机 WS2022):
- 右键
WS2022-LAB01→ 设置 → 左侧选 SCSI 控制器 → 右侧点硬盘 → 添加。 - 选新建 → 下一步 → 选 VHDX → 动态扩展 → 名称
WS2022-LAB01-Data1.vhdx,位置D:\VMs→ 大小20GB → 完成 → 确定。 - 重复 2 次,得到 Data1/Data2/Data3 三块盘 → 开机。
进 WS2022,Win+R → diskmgmt.msc 打开磁盘管理,能看到 3 块"未初始化"的未知磁盘。别初始化、别分区——存储空间要的是裸盘。
💻 PowerShell 版(在外层宿主机上):
| |
二、存储空间:软件定义的 RAID(图形界面)
存储空间(Storage Spaces)= Windows 自带的软件 RAID:把几块物理盘扔进存储池,再从池子里切出虚拟磁盘,想用什么 RAID 级别自己选。
三种布局:
| 布局 | 原理 | 3 块 20GB 实际可用 | 容忍 |
|---|---|---|---|
| 简单(Simple) | 条带化,无冗余 | ~60GB | 坏 1 块全没 |
| 镜像(Mirror) | 2-3 副本 | 20GB(三向镜像) | 坏 2 块 |
| 奇偶(Parity) | RAID5 式校验 | ~40GB | 坏 1 块 |
🖱️ 图形界面做法(服务器管理器 → 文件和存储服务 → 存储池):
- 左侧存储池 → 右侧"任务"→ 新建存储池,进入向导。
- 名称填
LabPool→ 下一步 → 勾选 3 块 20GB 的物理磁盘 → 下一步 → 创建 → 关闭。 - 向导会接着问"创建虚拟磁盘":名称
MirrorVD→ 布局选镜像 → 配置类型选固定(厚置备,性能好)→ 大小20GB → 创建。 - 接着"新建卷向导":选
MirrorVD→ 下一步 → 盘符E→ 文件系统 NTFS,卷标MirrorData→ 创建 → 关闭。
打开文件资源管理器,E: 盘出现了。回想一下:3 块物理盘 → 1 个池 → 1 个三向镜像虚拟磁盘 → 1 个卷,这就是存储栈。
💻 PowerShell 全流程版:
| |
🖱️ 验证冗余:关机,到外层 Hyper-V 设置里移除一块 Data 盘,开机,E: 盘数据安然无恙——镜像的威力。再把盘加回去,存储池会自动重新同步(服务器管理器 → 存储池里能看到"正在修复"状态)。
💡 镜像 vs 奇偶怎么选?镜像写得快、重建快,适合热数据;奇偶空间利用率高但写惩罚大,适合冷归档。实验环境记住结论就行。
三、iSCSI:把磁盘通过网络借给别人(图形界面)
iSCSI = 用 TCP/IP 传 SCSI 命令,让 A 机器的硬盘在 B 机器上看起来像本地盘。角色分两边:
- 目标(Target):提供磁盘的一方(我们的 WS2022)
- 发起方(Initiator):挂载使用的一方(Win11 客户端或第二台 VM)
目标端:新建 iSCSI 虚拟磁盘向导
🖱️ 图形界面做法:
- 服务器管理器 → 管理 → 添加角色和功能 → 服务器角色 → 展开"文件和存储服务"→ 勾选 iSCSI 目标服务器 → 安装。
- 服务器管理器 → 文件和存储服务 → iSCSI → 右侧"任务"→ 新建 iSCSI 虚拟磁盘。
- 选择位置:选
E:卷(刚才建的镜像盘),名称shared01→ 大小10GB(选"动态扩展"省空间)→ 下一步。 - 新建 iSCSI 目标:名称
LabTarget→ 下一步 → 访问服务器点添加 → 输入发起方的 IQN(见下)→ 下一步 → 创建。
发起方的 IQN 在哪看?到 Win11 客户端上:Win+R → iscsicpl 回车,打开"iSCSI 发起方"→ 配置选项卡 → 发起方名称就是,形如 iqn.1991-05.com.microsoft:win11-01,复制回来填。
💻 PowerShell 版:
| |
发起方:iscsicpl 点鼠标连接
🖱️ 图形界面做法(Win11 客户端):
Win+R→iscsicpl→ 目标选项卡 → “目标"栏输入 WS2022 的 IP(192.168.100.11)→ 快速连接 → 选中发现的LabTarget→ 连接 → 确定。Win+R→diskmgmt.msc→ 多出一块 10GB 的"未知/未初始化"磁盘 → 右键 → 初始化磁盘(GPT)→ 右键未分配空间 → 新建简单卷 → 一路下一步 → 完成。
现在它像本地盘一样用了。这时候在 WS2022 的服务器管理器 → iSCSI 里能看到会话连着。
iSCSI 盘和 SMB 共享的区别:
| iSCSI | SMB 共享 | |
|---|---|---|
| 呈现给客户端 | 一块裸盘(块级) | 一个文件夹(文件级) |
| 客户端格式化 | 自己选文件系统 | 不用,服务器定 |
| 适用 | 数据库、Hyper-V 群集共享卷 | 文档共享、多人协作 |
| 多机同时挂载 | ❌(除非群集 CSV) | ✅ |
⚠️ 坑:同一块 iSCSI 盘不要同时被两台发起方挂载读写(除非是群集),文件系统会互相踩,数据全毁。这是块存储的铁律。
四、重复数据删除:10GB 变 2GB 的魔法(图形界面)
文件服务器上 100 个用户各存一份同样的 100MB 安装包 = 10GB 浪费。重复数据删除(Dedup) 把重复的数据块只存一份:
🖱️ 图形界面做法:
- 服务器管理器 → 添加角色和功能 → 服务器角色 → 展开"文件和存储服务”→ 勾选数据重复删除 → 安装。
- 服务器管理器 → 文件和存储服务 → 卷 → 右键
E:卷 → 配置数据重复删除。 - “启用数据重复删除"打勾 → “重复删除未优化的文件"天数改成 3(默认 30 天,实验等不起)→ 确定。
🖱️ 做实验:往 E: 盘拷 5 个相同的 2GB 文件(命令 fsutil file createnew E:\test1.bin 2147483648 生成,复制 5 份)。然后回到"配置数据重复删除"窗口 → 点开始优化(或等计划任务)。
看效果:🖱️ 右键 E: 卷 → 配置数据重复删除 → 状态里看"节省率”;或 PowerShell Get-DedupStatus -Volume "E:" | Select Volume, SavingsRate, SavedSpace → SavingsRate 80% —— 10GB 只占 2GB。这就是重删的威力。
适用 vs 不适用:
| ✅ 适合重删 | ❌ 别开重删 |
|---|---|
| 文件共享(第 4 篇的场景) | 数据库文件(SQL/Exchange) |
| VHD/VHDX 模板库 | 正在运行的 Hyper-V 虚拟机磁盘 |
| 备份归档 | 高频写入的热数据 |
⚠️ 坑:重删是后台定时任务,不是实时生效。刚拷进去的文件不会立刻变小,等计划任务跑(默认周末)或手动点"开始优化”。
五、检查清单
- 3 块 20GB 虚拟硬盘已加,存储池 LabPool 已建(新建存储池向导)
- 镜像虚拟磁盘 E: 盘可用,拔盘实验验证冗余
- iSCSI 目标已建,Win11 发起方(iscsicpl)能挂载 10GB 磁盘
- 理解 iSCSI(块级)vs SMB(文件级)的区别
- Dedup 已开,5 个相同大文件重删率 ~80%
- 快照:
存储完成
六、下篇预告(终篇)
第 10 篇《Windows Server 2022 终章:故障转移群集与 Windows Admin Center》:系列终章。用两台嵌套 VM(第 8 篇的技术)+ iSCSI 共享存储(这篇的技术)搭一套故障转移群集,拔掉一台 VM 的网线看服务自动漂移——前面 9 篇的所有技能,在这里大会师。
💾 —— Bosh,存储玩得溜,半夜不用愁;RAID 配得对,数据不会废
