怎么自己搭建自己的云存储服务器?

怎么自己搭建自己的云存储服务器?,第1张

第一步:预装软件。

ownCloud 内核是用PHP5写的,支持SQLite、MySQL、Oracle以及PostgreSQL等数据库。为了简单,我们将用MySQL数据库。在你的Linux系统下你需要安装以下软件:

PHP 安装包:php5, php5-gd, php-xml- parser,php5-intl

数据库驱动:php5-mysql(如果你使用其他数据库,需要安装相应的数据库以及驱动)

Curl 安装包:curl, libcurl3, php5-curl

SMB 客户端:smbclient (这个用来挂载windows共享文件夹的)

Web 服务器:apache2

在2007年,GlusterFS演变为大型分布式存储方案后,任何配备合适硬件的公司,单位都可以利用个做分布式的流媒体,数据分析。在2011年,Red Hat收购了GlusterFS.

Minio是GlusterFS创始人之一Anand Babu Periasamy发布新的开源项目。Minio兼容Amason的S3分布式对象存储项目,采用Golang实现,客户端支持Java,Python,Javacript, Golang语言。

Minio 提供对象存储服务,兼容了 AWS S3 存储协议,用于非结构化的数据存。非结构化对象,比如图像,音、视频,日志文件,备份镜像…等等管理不方便,不定长,大小变化大、类型多,云端的访问复杂,minio就是来解决这种场景的。非结构化的文件从数KB到5TB都能很好的支持。开源并且用 Go 语言开发,有web操作界面,我们可以用它来搭建兼容S3协议的存储云服务。

Minio可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序,单行命令可以运行起来。

官网: https://minio.io

那么,如何自己搭建一个私有的S3存储云服务呢?

官方的话是推荐用Docker来搞,我们先用普通的二进制文件来直接解决了!

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

# mkdir /data/aws_s3

# wget   https://dl.minio.io/server/minio/release/linux-amd64/minio

# mv  minio /usr/local/bin/

#  chmod  755  /usr/local/bin/minio 

# minio server  /data/aws_s3

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

Created minio configuration file successfully at /root/.minio

Endpoint: http://10.5.10.89:9000   http://127.0.0.1:9000   http://172.17.0.1:9000

AccessKey: U3XLU4IMXY3IDKHU268F 

SecretKey: /6NCL6HGacviaCgRqr2qLbVOjhkkJdRpV7wz0JJD 

Region:    us-east-1

SQS ARNs:  

Browser Access:

http://10.5.10.89:9000   http://127.0.0.1:9000   http://172.17.0.1:9000

Command-line Access:  https://docs.minio.io/docs/minio-client-quickstart-guide

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

$ mc config host add myminio  http://10.5.10.89:9000  U3XLU4IMXY3IDKHU268F /6NCL6HGacviaCgRqr2qLbVOjhkkJdRpV7wz0JJD

Object API (Amazon S3 compatible):

Go:  https://docs.minio.io/docs/golang-client-quickstart-guide

Java:  https://docs.minio.io/docs/java-client-quickstart-guide

Python:  https://docs.minio.io/docs/python-client-quickstart-guide

JavaScript:  https://docs.minio.io/docs/javascript-client-quickstart-guide

Drive Capacity: 8.3 GiB Free, 9.1 GiB Total

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

我们就成功启动了minio的s3服务,默认端口9000,可以通过网页访问:

http://10.5.10.89:9000  

http://127.0.0.1:9000  

http://172.17.0.1:9000

注意 :第一次打开时候需要填写AccessKey和SecretKey才能进入,我们上面启动服务的时候,已经看到屏幕有输出:

AccessKey: U3XLU4IMXY3IDKHU268F 

SecretKey:6NCL6HGacviaCgRqr2qLbVOjhkkJdRpV7wz0JJD

把这两个Key填入,就能顺利进入,进入后展开页面如下:

这就是我们的S3云存储的管理页面了,看着是不是和七牛什么的提供云存储的产品页面挺像的,大家都是基于S3协议开发的!

上传个文件试试:

点击右下角的红色小加号按钮,弹出的菜单选择”create bucket”则会创建一个桶,输入名字”test”

点击刚才那个红色小加号按钮,这次选择”Upload file”上传文件,给这个桶上传了一个叫login.txt的文本文档

此时页面如下:

至此我们可以看到文件已经上传,要访问这个文件,可以点击文件右侧的三个点的按钮,选择分享就可以得到一个外链,在浏览器中访问这个外链就可以直接访问文件。

那么文件到底被存到哪里去了呢,我们启动命令中其实指定了工作路径/data/aws_s3/,所以到服务器这个目录下看看:

# ls /data/aws_s3/ 

test

# ls /data/aws_s3/test/

login.txt 

桶名称test是一个目录,其下就有上传的login.txt文件。

如果想指定ip和端口,可以这样写:

# minio server /data/aws_s3 --address=0.0.0.0:9000

如果想让服务在后台运行:

# nohup minio server /data/aws_s3   --address=0.0.0.0:443 &

[1] 19882

// nohup: 忽略输入并把输出追加到启动命令的当前目录下的 "nohup.out"文件

minio可以用来搭建分布式存储系统 GlusterFS,这样就成了真正的云存储了,有时间再研究下把它从现在的单机测试,变成一朵存储云!

minio官网: https://minio.io

minio官方文档: https://docs.minio.io/docs/minio-docker-quickstart-guide

minio github主页: https://github.com/minio/minio

云服务器的配置规格影响价格,也直接决定了它的计算能力和特点,是在采购时要重点考虑的问题。

选云服务器配置,看这三个维度

云服务器的配置规格主要取决于类型、代别、实例大小三个最重要的维度。

维度一:类型

云服务器的“类型”或“系列”,是指具有同一类设计目的或性能特点的云服务器类别。

通常来说,云厂商会提供通用均衡型、计算密集型、内存优化型、图形计算型等常见的云服务器类型。这些类型对应着硬件资源的某种合理配比或针对性强化,方便你在面向不同场景时,选择最合适的那个型号。

vCPU 数和内存大小(按GB计算)的比例,是决定和区分云服务器类型的重要依据之一。

通用均衡型的比例通常是1:4,如 2核8G,这是一个经典搭配,可用于建站、应用服务等各种常见负载,比如作为官网和企业应用程序的后端服务器等。

如果 vCPU 和内存比是1:2,甚至1:1,那就是计算密集型的范畴,它可以用于进行科学计算、视频编码、代码编译等计算密集型负载。

比例为1:8及以上,就被归入内存优化型,比如8核64G的搭配,它在数据库、缓存服务、大数据分析等应用场景较为常见。

图形计算型是带有GPU能力的虚拟机,一般用于机器学习和深度学习模型的训练和推理。随着 AI的火热,这类机器也越来越多地出现在各种研发和生产环境中。

在主流云计算平台上,常常使用字母缩写来表达云服务器的系列。比如,AWS 的通用型是M系列,阿里云的内存优化型为R系列,Azure的计算优化型为F系列。

维度二:代别

云服务器的“代”(Generation),用来标识这是该系列下第几代的机型。

数据中心硬件和虚拟化技术是在不断发展的,云厂商需要不断地将最新的技术和能力推向市场,所以即便是同一系列的机型,不同的代别之间也会有不小的区别。

同类型云服务器的更新换代,往往会先带来相应硬件CPU的换代提升。由于CPU在不断更新,所以云服务器的单核性能未必相同。有时,虽然两个云服务器的核数一致,但由于底层芯片的架构和频率原因,性能上可能有较大的差别。

新一代的型号,往往对应着全新的特制底层物理服务器和虚拟化设施,能够提供更高的性能价格比。

维度三:实例大小

云服务器的实例大小(Size),指的是硬件计算资源的规模。

在选定的机器类型和代别下,我们能够自由选择不同的实例大小,以应对不同的计算负载。在描述实例大小时,业界常常使用medium、large、xlarge 等字眼来进行命名区分,这样的描述基本已经成为事实标准,包括AWS、阿里云、腾讯云在内的多家主流厂商都在使用。

大致可以这样记忆:标准large对应的是2vCPU的配备,xlarge则代表4个vCPU,而更高配置一般用nxlarge来表达,其中n与xlarge代表的4vCPU 是乘法关系。比如,8xlarge 就说明这是一台8*4=32vCPU的机器。

如若要更严谨的表述配置,则使用vCPU而非核数(Core)来描述云服务器处理器的数量。因为超线程(HyperThreading)技术的普遍存在,常常一个核心能够虚拟出两个vCPU的算力,但也有些处理器不支持超线程,所以 vCPU是更合适的表达方式,不容易引起混淆和误解。

在某些场景下,你可能还会看到“metal”或者“bare metal”这样的描述规格的字眼,中文称为“裸金属”。它们就是云服务商尽最大可能将物理裸机以云产品方式暴露出来的实例,主要用于一些追求极致性能,或是需要在非虚拟化环境下运行软件的场景。

云服务器的命名规则

云服务器的型号名称一般由类型、代别、实例大小这几项的缩写组合而成,有时还会带有补充后缀。AWS的命名规则最具代表性(阿里云采用的也是非常类似的格式):

当你理解了云服务器的命名规则后,今后看到某个具体型号,便能够很快明白背后的含义,晦涩的字符串立刻变得清晰。

比如,分解r5.4xlarge这个型号,这首先是一个R类型第5代的内存型机器,它应该有4×4=16个vCPU,内存大小则是16×8=128G(内存型机器的CPU内存比一般为1:8)。

当然,并非所有的云都一定是采用类似 AWS 的命名规则,微软Azure就用了一个略有不同的命名体系,大致可以总结为:

比如“E4v3”,就代表了微软Azure上4核32G的第三代内存型机器。掌握了Azure的格式特征后,你同样能够很快地解读标识的具体含义。

在命名公式中,还有一个称之为“后缀”的可选部分,在许多的型号命名中都能看到它。它一般是作为型号硬件信息的一个重要补充,这种型号与不带此后缀的标准版本相比,有一些显著的区别或特点。比如阿里云,表达“网络增强”含义的后缀是“ne”。

如何验证机型配置与期望相匹配?

在Linux环境下,可以使用lscpu命令来了解云服务器的CPU信息,并与机器的具体型号名称进行对照。下图是在一台AWS的m5a.xlarge机型上运行的结果,可以看到芯片提供商AMD及双核四线程等关键信息,与机型命名的含义相符:

https://www.wy.cn/computing/wcloud/all?utm_source=wemedia


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/436386.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-28
下一篇2023-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存