存储空间与SMB3.0

简介:

好久没有写博了,最近特别忙而且也没想到什么好的题材,这次想分享一下存储空间与SMB的一些内容,其实这方面网上能搜到的信息不少,但是把存储空间与SMB3.0再加hyper-v群集串联在一起的就很少了,我也是溺水三千只取一瓢饮之

#####################################################################################

在这次测试环境中,我已经创建好了两个存储空间,testpool1与testpool2;以pool1为例下图可以看到这个池是由4块硬盘构成的,但是有个问题,如果是一些主流设备比如JBOD或者其他盘柜类产品,OS是可以正确识别出磁盘类型的,HDD或SSD;但拿我这个测试环境的老旧HP服务器来看,显然OS不能直接识别出来,mediatype里默认是unknown

这样就产生了一个问题,我们知道windows存储空间功能的一大特点是可以做存储分层,也就是storagetier(存储分层),系统可以根据使用习惯来区分热数据与冷数据,然后分别存放在传统硬盘或固态硬盘之上,此外还可以手动将指定的文件定位在高速介质上;但它的一个前提就是你的池中一定要包含HDD于SSD的mediatype才行,缺一不可;那么如果我的SSD无法正确识别的话我就需要手动来修改了

wKioL1N8yJaDNOuIAAJPxQGxt4k962.jpg

在操作系统的powershell中可以看到当前系统识别出的硬盘,以下图为例,有一些盘我已经手动将它们的类型修改过来了,还剩下一些unspecified的

wKiom1N8yMKjt1p8AAHOmIfPF4w763.jpg

接下来通过set-physicaldisk来修改,这里只需简单的指定磁盘uniqueid或friendlyname再加上mediatype就可以了

wKioL1N8yJnQc6WrAAPDMkqorpw663.jpg

按照下面的例子将physicaldisk5修改成HDD盘

wKiom1N8yMaxEfXmAAICro6o_lw633.jpg

之后在server manager中刷新一下

wKioL1N8yJuz2JJ9AAJSW-I8fiA252.jpg

可以看到磁盘类型已经变为HDD了,方法很简单的

wKiom1N8yMfyKgzpAAItCquo3Ss587.jpg

接着来看一下pool2,我已经如法炮制将他们配置为HDD+SSD了,其实745GB那块本身就是SSD,但因为我的服务器比较老,RAID卡不做阵列的话OS中认不出来

wKioL1N8yJzQpo9oAAIVHzRGDpo959.jpg

后面就是在池中创建VHD了,这里就不做说明了,创建的向导中可以启用存储分层,并且制定分层的容量,在这个测试环境中,我把每块盘的全部容量都利用了,也就是说SSD的全部容量定义为SSD Tier,同理HDD也是,通过下面的get-storagetier可以看到不同层的相应参数

wKiom1N8yMmgn-L5AANkDADD_sg991.jpg

通过resize-storagetier也可以修改分层容量

wKioL1N8yJ7xAALoAAPTSsVGckU535.jpg

下图中的F卷就是在pool2中创建的,使用simple模式也就是条带(raid0那种),这样以牺牲数据安全为前提来提高吞吐,并且磁盘采用固定大小而不是精简置备,这也是系统推荐的默认选项

wKiom1N8yMvwU-J_AAHQgOh4f30386.jpg

####################################################################################

存储空间准备好之后,就要创建SMB共享了,在server manager中的shares部分创建一个共享

wKioL1N8yKDD2nRZAAHAUSDM_2k046.jpg

用于存放hyper-v或sql的话,一定要选择applications

wKiom1N8yMyToTzFAAGtlG0TJ9E336.jpg

然后选择这个共享是建立在哪个卷上,我就选择刚才存储池中创建的F卷

wKioL1N8yKHCtN_eAAIUF-AbOQM312.jpg

然后输入这个共享的名称,共享路径会自动利用该名称

wKiom1N8yM3z4Y7JAAGN16p8L_k075.jpg

然后可以选择是否加密数据以提高安全性

wKioL1N8yKOjj4mYAAKt6VPe1Fc351.jpg

需要注意的一点是,对于存放hyper-v虚机的SMB共享一定要将每个节点的计算机名称和群集名称以及对应的操作账户(一般都是拥有域管理员权限的)加入到下图列表中并且授予完全控制

wKiom1N8yM_D58c4AAKETAPtfO8768.jpg

确认无误后就可以创建SMB共享了

wKioL1N8yKTQoatDAAHD53gH4Qw028.jpg

按照上面的方法我在F卷上创建了名为ssd的共享路径

wKiom1N8yNCAGAXwAAGFigsziAI565.jpg

#####################################################################################

上面的内容从底层磁盘-存储空间-SMB共享这一条线都准备好了,下面就要准备hyper-v的群集环境了,failover cluster不多说了,这里我用两个节点A和B建立了一个hyper-v群集

wKioL1N8yKWw56KvAAHBhczeIDk570.jpg

对于hyper-v over smb的方案,可以参照下图中的几种模式,左边是最简单的独立hyper-v主机与独立的smb共享服务器(成本低,但后端存储单点故障,smb服务器挂了就废了,前端hyper-v不支持高可用但能手动live migration);中间的是双节点smb文件服务器,前端还是独立hyper-v主机(这个方案主要是提高了后端smb的高可用,并且smb的fileserver群集是AA模式的,也就是全活的,带宽也是累加的,也就是所谓的“横向扩展文件服务器群集”http://technet.microsoft.com/en-us/library/hh831349.aspx);最后的方案是更多节点的smb群集,也就是多机头的,但前端仍然没有改变,这里要说明的是,对于前端hyper-v层,最佳实践也是建议采用群集模式的,所以最终的拓扑应该是前端hyper-v群集+后端smb群集,这样vm支持高可用,smb支持高可用,并且吞吐量更高,还可以配合RDMA等硬件加速技术来提升性能

wKiom1N80juScwVsAAGurAQdkFc692.jpg

那么传统hyper-v群集是会按照下图规划的,磁盘方面首先要有数据盘用来存放虚机,然后还会有仲裁判来进行投票以便高可用场景,如下图所示,但是在hyper-v over smb的环境中,因为我们的存储是不依赖于以往的SAN或者直连存储的,我们是通过网络访问共享文件的方式来做,类似NAS;那么其实数据盘是不需要的,且仲裁的配置也因人而异,可有可无,如果我们是个十足的低成本场景,那么肯定是不会特地准备一块仲裁盘的,那么就直接用文件夹仲裁就好了,有关这方面的配置我就不多说了

wKiom1N8yNLCzhXvAAHhCTRO10A019.jpg

接下来存储空间,SMB还有hyper-v都准备好了,这时候来到SCVMM,通过system center来对基础架构资源进行统一化管理才是云平台的核心价值之一,VMM对存储的功能是在架构部分来实现的,如下图所示,首先在providers中新加刚才准备好的smb服务器,选择windows-based file server即可

wKioL1N8yKewAHz9AAMKcrBvyiw008.jpg

接着输入smb服务器的ip或者主机名,再选择有足够权限的运行方式账户

wKiom1N8yNPwCvLtAAG-RIfp6h4648.jpg

很快就会扫描出这台服务器,可以看到我是用一台HP DL580G4来做的,包括容量也能看到

wKioL1N8yKjjVqyIAAG_RJwYlMA175.jpg

下一步之后就能看到我之前创建好的两个共享目录了,ssd是刚才上面所讲到的混合vhd,hdd是在pool1中用那四块hdd做的,total和可用空间一目了然

wKiom1N8yNTjeoc1AAHm_Iusujw527.jpg

最有价值的是classification,也就是分类,在vmm中对存储可以设置分类,对网络端口也可以进行分类,别小看分类,这不光是一个标识,它是对数据中心里的众多类型的资源进行合理的规划和分类,一是方便了管理(清晰),二是在通过自服务门户时可以交付给用户,因为用户不关心你的基础架构有多么复杂,他不会关心你用了哪些品牌的存储设备或网络设备,你只需要给他一个金银铜或三六九等的类型就可以了,下图中我创建了三个分类,FC SAN顾名思义,另外两个hdd与ssd fileshare是给这两个smb共享用的

wKioL1N8yKrAOCkYAAIWYrRYl4s082.jpg

此外你还可以新建更多的类型来进行管理

wKiom1N8yNaQDTmhAAKLYpvin9c044.jpg

添加完providers之后就可以通过vmm来管理文件共享了

wKioL1N8yKvwJnrnAAIsT96ColY447.jpg

在file servers中可以同步出所有共享及分类并且资源使用情况也是一目了然

wKiom1N8yNnQBVMLAANiTXAyB9k458.jpg

接着在群集属性中查看file share storage,可以看到两个共享已经分配给群集使用了

wKioL1N8yK7C7yDfAAKGWRjfJ5Y095.jpg

在对vm进行存储迁移的时候可以放置在新的smb共享中了

wKiom1N8yNvwS9LBAALMyf1pag0028.jpg

以VM01这台虚机为例,当前vhd存放路径已经是在smb共享中了

wKioL1N8yLCBhHX6AALZrPhFQP0506.jpg

另外要提到的是,刚才前面说过存储分类的意义在于交付给最终用户,那么面向最终用户的就是“云”了,在vmm的clouds中可以对云资源分配指定的存储类别,这样用户在通过自服务门户时候或者租户申请订阅的时候,就可以选择他要使用哪一种类型来放置资源了,至于这一类型后面对应的磁盘类型及更底层的细节,用户可不关心

wKioL1N8ys6TM6ZGAAJ8rGeR97g128.jpg

下面回到群集管理器,图中的三台虚机最上面这个ab是存放在CSV中的

wKiom1N8yvqhHl2AAAJQNW5YWN8697.jpg

而另外两台都是放在SMB共享上的,这里顺便说一下群集管理器左边的storage中也有一个pools,这里是什么意思呢,比如你有存储设备,不管是FC,iscsi或者DAS,whatever~你把他们挂载给每一个群集节点,然后通过这里来创建存储空间,并用于群集,在windows2012r2中,存储池无论是simple,mirror还是带校验的类型都可以用于群集了

wKioL1N8ys_Didt-AAIWTdsaT1s866.jpg

接下来测试一下live migration,同时选择CSV上的ab与SMB3.0上的VM01一起迁移

wKiom1N8yvzjXUZqAAJxaLrTl9g830.jpg

迁移从A节点到B节点

wKioL1N8ytGSRZIhAAJjBcGxMuk745.jpg

SMB3.0的速度还是很快的,可能是由于SSD的原因,SMB迁移完成时HP FCSAN的迁移刚到69%

wKiom1N8yv2jl4VaAAIl2vr0Uw0534.jpg

从测试效果来看,SMB3.0很靠谱,实际在生产环境中也是可以应用的,不会说有什么致命的性能或稳定性缺陷,并且配合SMB多通道技术,可以实现非常好的负载平衡效果


本文转自maomaostyle 51CTO博客,原文链接:http://blog.51cto.com/maomaostyle/1415013,如需转载请自行联系原作者


相关文章
|
数据可视化 JavaScript 前端开发
Turf.js介绍
Turf.js介绍
1323 0
|
前端开发 JavaScript
uniapp移动端悬浮按钮(吸附边缘)
uniapp移动端悬浮按钮(吸附边缘)
717 0
|
算法 数据可视化 前端开发
第三代软件开发-QCustomPlot核心迁移
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
9月前
|
机器学习/深度学习 存储 PyTorch
PyTorch内存优化的10种策略总结:在有限资源环境下高效训练模型
在大规模深度学习模型训练中,GPU内存容量常成为瓶颈,特别是在训练大型语言模型和视觉Transformer时。本文系统介绍了多种内存优化策略,包括混合精度训练、低精度训练(如BF16)、梯度检查点、梯度累积、张量分片与分布式训练、
363 14
PyTorch内存优化的10种策略总结:在有限资源环境下高效训练模型
|
存储 NoSQL 安全
阿里淘系单点登录中心实战
阿里淘系单点登录中心实战
469 0
|
前端开发 Java 关系型数据库
基于java的足球联赛管理系统(程序+数据库+文档)
基于java的足球联赛管理系统(程序+数据库+文档)
|
存储 C++ Python
[oeasy]python037_ print函数参数_sep分隔符_separator
本文介绍了Python中`print`函数的`sep`参数,即分隔符。通过回顾上文内容,解释了类型与`type`的概念,并强调了参数类型的重要性。文章详细探讨了`print`函数如何使用`sep`参数来分隔输出值,默认分隔符为空格(序号32)。还讨论了如何修改分隔符为其他字符,如冒号,并解释了为何反斜杠需要使用双反斜杠表示。最后,文章追溯了`sep`名称的由来,以及相关词汇的历史背景,如盎格鲁-萨克逊人的武器和语言。
415 1
|
人工智能 数据可视化 大数据
项目管理软件:从单一工具到全面解决方案的演进
【6月更文挑战第24天】从单一工具到全面解决方案,项目管理软件伴随企业复杂性增长而进化。初期专注任务分配和进度,现整合云、大数据、AI,提供集成、灵活、可视化及智能的全面解决方案。技术革新如云计算增强实时访问和数据分析,大数据支持决策,AI助力预测和自动化。未来,软件将进一步智能化、集成化,优化项目管理效率和满意度。
|
缓存 网络协议 网络虚拟化
读透,什么是EVPN?
读透,什么是EVPN?
480 5
|
编解码 测试技术 开发工具
绘梦有形,快手开源「可图 Kolors」,等你来玩
近期,快手开源了名为Kolors(可图)的文本到图像生成模型,该模型具有对英语和汉语的深刻理解,并能够生成高质量、逼真的图像。