精华内容
下载资源
问答
  • 多台服务器集群部署方案

    千次阅读 2021-01-15 16:46:44
    服务器 环境搭建 版本控制 代码同步 数据库 后台开发 缓存服务 图片等大文件存储 使用 cdn 为网站加速 使用 supervisor 托管队列 API 开发 建议 后期学习计划 序言 大家看着图个乐就行,这段纯粹个人...

    文章目录

    序言

    框架选型

    版本控制

    API 编写

    目标与现状

    正文

    第一阶段:刚接手项目

    需要解决的问题:

    解决方案

    不足之处

    第二阶段

    需要解决的问题:

    解决方案

    不足之处

    第三阶段

    服务器

    环境搭建

    版本控制

    代码同步

    数据库

    后台开发

    缓存服务

    图片等大文件存储

    使用 cdn 为网站加速

    使用 supervisor 托管队列

    API 开发

    建议

    后期学习计划


    序言

    大家看着图个乐就行,这段纯粹个人吐槽,可直接跳过
    本人所在的公司,后端就我一个人,前端一名(原本 2 名,后来离职 1 名),设计两名,策划 1 名。17 年进入这家公司,维护公司官网,最初就我一人,18 年下半年逐渐增加到 6 人,队伍也不算小了,本人负责整个后端架构和服务器部署维护。
    从 15 年出来工作到现在,陆陆续续也进过很多公司,最初的毛头小子,技术小白,一步一步成长到现在,技术、经验都有了很大的提升(自我感觉,请勿喷),从一开始的 echo "hello world";, 到现在的多语言版本 hello world,只想说一句话,生命不息,代码不止!

    最初的时候用的是 tp3.23,干外包,大家都懂,追求效率。干了 2 年外包后,进入了一家本土稍微大一点论坛,主要做一些小专题,小项目和维护论坛,比之前外包难度稍高,还好有个老技术可以带(干外包的时候前期后端技术都跑了,就我一人,天天加班熬夜干活学习,自己一个人闭门造车),了解了很多项目流程,包括写代码需要注意的事项,代码安全、运行效率,redis 队列、应付并发等等。

    之后跳槽就进入现在这家公司,主做维护,因为可以学到很多敲代码除外的东西,最初的时候可以跟着领导全国出差,感谢领导,学到了很多很多,为人处世等等。

     

    框架选型

    刚进来的时候是接手外包做的网站,因为部门战略方向修改,所以整个项目相当于要推倒重来,因为外包用 yii2 做的,我不是很喜欢这个框架,ci 和 tp 又不合适,遂直接用 laravel 开撸,前期真的是碰了很多很多壁,一度想放弃,但是还是坚持了下来。

     

    版本控制

    最初代码使用 ftp 管理,后来跟换到 svn,再到现在的 git,自己 docker 环境下搭建的 gogs。服务器也从最初的 1 台,到现在多台,也部署了一台负载均衡器,同步代码使用 git 提交触发钩子,然后 rsync+sersync 监听文件变化,自动同步差异化文件,CDN 隐藏服务器真实域名。

     

    API 编写

    接口最初使用 laravel + dingo API,到现在的 golang 的 gin 重写,爬虫项目也从最初的 php 的 guzzle 包到目前的 python 重写。最终,得到一个结论!就是 想要快速进步,就要靠大量项目喂养

     

    目标与现状

    • 目前在的公司较为安逸,主做维护,所以有很多空余时间。荒废时间对于技术人员是最可怕的,我们公司是存在编制的,不犯什么大错误基本可以干一辈子了,担忧技术停滞不前甚至倒退。
    • 公司在三线城市(房价涨幅世界第一,不想吐槽),城市的 IT 技术相较于北上广深差距太大,自己又买不起房,学历只是大专,自考的远程教育本科又没有含金量,只能不断学习逼迫自身,靠技术去一线城市博得一席之地。
    • 学无止境,百度云存储的内容估计这辈子都学不完了,从前端到后端到服务器到人工智能,内容太多了。经过长时间的思考,暂定以后端技术为主,前端不求精通,能做一些兼职即可,服务器方面目前在研究 docker+k8s, 公司服务器 gogs 就是搭建在 docker 环境下的。接下来深入研究 golang,微服务方面。

    这周看看能不能写服务器部署的一个分享出来,到时候请各位批评指正!

    本文将从三个阶段叙述,包含项目的架构、版本工具的选择、代码部署、到安全

     

    正文

     

    第一阶段:刚接手项目

    外包交付之前,是通过 ftp 的形式上传文件。
    交付后到公司战略方向调整后,因为公司业务较多,全国有 20 多个营业点,每个营业点都有一名前端设计,公司后端只有我一人。前端需要制作页面,供外网访问。

     

    需要解决的问题:

    1. 项目需要重新设计,选择框架?服务器环境如何搭建?
    2. 代码安全问题,不希望全国的营业点直接访问到项目源码,如何选型?
    3. 全国营业点中有技术较好的前端,如何给与部分网站修改权限?
    4. 网站是站群系统,域名需要泛解析,laravel 自带的路由文档无法提供解决方案
    5. 后台的选型,还有权限等功能的开发

     

    解决方案

    1. 因为发现了 learnku 社区(前身 laravel-china.org), 学习了发布的教程,遂选择了 laravel。服务器环境使用宝塔面板,定时备份网站和数据库、设置阿里云自动快照。
    2. 需要严格控制代码权限,所以选择了 svn,创建不同角色,给目录增加对应权限。
    3. 借鉴 blade 模板和织梦的模板标签,开发属于 laravel 的自定义模板标签。
    4. 改写 route 路由,自己摸索泛解析匹配规则,辅以大量正则判断,不断试错。
    5. 后台模板使用 ACE,手撸 RBAC 权限管理,这个实现较为简单,业务逻辑。

     

    不足之处

    1. git 比 svn 更好,但受限于技术,无法搭建。等自身实力达到后肯定要换掉。
    2. 对 svn 功能也不是很了解,区域经常上传大文件,导致项目愈发臃肿。
    3. 自写的泛解析站群路由正则太多,文件也较长,不利于后期维护和扩展。
    4. 后台功能较少,筛选、统计等新功能开发效率较低。
    5. 没有应付高并发的方案、也没有应对网络恶意攻击的解决手段。

    服务器使用 CentOS,采用 LNMP,直接用宝塔部署,手动安装 svn 版本控制工具,通过钩子自动同步代码,svn 提交后,线上可以直接看到效果,php+svn 就是这么暴力,因为条件受限和技术受限,就没有部署测试环境,所见即所得。

    安全方面,laravel 自身意见提供了一部分,包括 csrf防SQL注入端口IP限制,使用阿里云 CDN 隐藏服务器真实 IP 等等,都是一些常见的。

     

    第二阶段

    新项目的使用和内部项目迭代,还有个人经验、技术的提升,此时产生了以下问题:

     

    需要解决的问题:

    1. 不满足于 svn 的局限,需要选型新的工具。
    2. 新项目选型,需要用到队列和定时任务。
    3. 服务器访问较大,需要购买多台服务器部署集群。
    4. 后台开发耗时较多(因为我们后台功能很多),如何解决?

     

    解决方案

    1. 在服务器部署 git 私有管理器,实现版本控制,svn 和 git 同时存在。
    2. 学习 laravel 课程二,借鉴大佬代码和阅读文档,实现队列和定时任务。
    3. 购买阿里云服务器,和负载均衡,使用 rsync+sersync 监听文件变化,自动同步差异化文件。
    4. 使用 laravel-admin 扩展包,快速生成后台,加上自定义的接口,可以很轻松实现绝大部分业务功能。

     

    不足之处

    1. 因为项目人员骤减,只限于办公室的 6 个人,所以不需要对代码进行权限控制,但总要限制,gitlab 可以实现,可惜技术不足,无法满足需求。
    2. 服务器部署使用的宝塔面板,方便快捷(全部命令行太麻烦,效率也低),想全部容器化部署,使用 k8s,这也是目前能想到的解决方案,受限于技术原因无法实现。下一步学习方向就在此。
    3. 网站后台的 UI,同事不满意,但自建后台,消耗的成本和时间会很大,目前只能这样。

    此间碰到过多起安全问题,网站运行受到大量的 CC 攻击,期间最严重的一次,攻击持续了 4 天,超过 CDN 负载,3 天访问次数达 10 亿次以上,QPS 峰值 5W 多,被阿里云 CDN 拉入沙箱,整个业务完全终止外网访问。

    当时可以说人在公司呆了 4 天,基本天天熬夜到下半夜,受限于技术,通过 iftop 工具分析流量,只能采取最傻瓜的操作,就是服务器防火墙封锁 IP,后因 IP 太多,直接封锁 IP 段,但因为对方 IP 池太深,以失败告终。

    服务器方面,opcache 缓存开启,php 调整进程数,nginx 限流开启,数据库增加连接数,数据库读取增加缓存,存入 redis,但也只是杯水车薪。

    通过不断的查阅资料,给服务器安装了 fail2ban,仍然没有解决问题,为此阿里云还专门和我建立了一个钉钉讨论组,他们给的建议就是,花钱上高防服务器,可惜的是因为价格太高,公司领导不允许。不过在不断的分析 IP 来源中,发现了一个规律,就是流量来源 90% 以上都是国外的,因此和阿里云技术沟通,看能否帮忙禁国外用户访问,答案是不能。

    后来在其他部门同事的帮助下,我们更换了 CDN 服务提供商,使用百度云 CDN,软磨硬泡,拜托百度云技术帮忙封锁国外 IP,配合 CDN 限流和继续封锁 IP 段,正好在美国的领导通知我国外无法访问网站,流量峰值不断降低至正常状态,此次危机才得以缓解,在次感谢百度云 CDN 工作人员的帮助。

    感谢 @MIsakas 提供的思路,可以在解析域名的时候把境外线路解析到虚假 IP 上,具体我还没有试。

     

    第三阶段

    因为部门方向再次变更,整个服务也需要大概,因为不断阅读社区优秀文章和教程,还有不断的刷 github,愈发发现之前代码写的太垃圾,毅然决定重写项目。

    正好服务器到期,公司也要更换阿里云账号,所以从购买服务器开始,到网站部署,版本工具的选择等等,算得上截止 19 年上半年学到的知识都用上了。

    首先,服务器安全层面,弃用密码登录,采用 ssh 秘钥,还有对应一系列的 ssh 配置,比如超时自动踢出登录,密码隔断自动修改等等,这些阿里云都会提示,对照着修改就好。

    因为公司后端就我一个人,所以我是允许 root 登录的,给端口设置 ip 限制就可以了。

     

    服务器

    服务器使用阿里云负载均衡 + 云 ecs

     

    环境搭建

    环境搭建方面,为了省事,我仍然采用的宝塔面板,限制面板登录端口 IP 权限。推荐大家 linux 安装 htop,友好性互动的进程查看器,比 top 命令好用多了。

     

    版本控制

    代码版本控制,安装 docker,使用 gogs 进行版本控制。因公司业务是所见即所得的,所以不需要测试环境,线下修改直接 push 推送,触发 post-receive 钩子,自动同步线上代码。如果条件允许的话肯定要配置测试环境的,而且 git 分支也要严格控制权限,master 分支只允许核心人员推送,合并分支也是。修改 bug 可以使用 dev 分支,gogs 的 web 界面也需要设置 IP 访问权限。

     

    代码同步

    代码同步方面,仍然使用 rsync+sersync,目前受于技术限制,没有发现其他更方便的同步方式

     

    数据库

    数据库用的 mysql8+,多台服务器之间以内网通信,设置独立的账号,分配权限指定数据库名。为了方便,管理员账户对外也指定了 IP,数据库对外端口也限制了 IP。需要注意的是 mysql8.0 以上修改了密码加密方式,连接不上的需要新建用户或更换版本。

     

    后台开发

    使用 laravel-admin 包,功能很强大,为作者点赞。绝大部分需求的功能都有,加上自定义的接口,可以满足日常后台开发的绝大部分需求。

     

    缓存服务

    数据缓存使用 redis,一样的需要限制 IP 访问。需要注意的是,redis 内网之间访问,IP 设置不是 127.0.0.1,而是对应的内网 IP。至于 mysql 的优化,社区一堆文章,我这里不做赘述。

     

    图片等大文件存储

    图片等大文件存储到七牛云或者阿里云 OSS,技术达到的话可以自行搭建图片服务器,记得使用 https 协议

     

    使用 cdn 为网站加速

    网站使用 cdn 加速,隐藏真实 IP,否则一旦暴露,ddos 攻击小公司根本扛不住。

    以上限制端口都可以通过 linux 防火墙进行设置。

    如果并发压力过高,记得开启 php 的 opcache,业务需要的话可以使用 swoolePHP-FPM 运行模式可以切换为动态,计算好 php 的连接数。

    上线项目前可以用 apache 的 ab 命令进行压测,还可以使用第三方测试工具,比如 JMeter 等进行压测,详情见 L06 Laravel 教程 - 电商进阶 (Laravel 5.8)

     

    使用 supervisor 托管队列

    队列使用 python 编写的 supervisor 进行管理,还可以使用 Horizon 队列管理工具,记得控制好权限

    docker 环境搭建 gogs 和 rsync+sersync,我会分两篇文章,本周六写好发布。

     

    API 开发

    API 接口前期使用的是 dingoAPI,后来使用 golang 的 gin 框架重写了,最近看 laravel6.x 自带的 Resource,觉得可以不用 dingoAPI 了。

    至于为什么使用 golang,因为个人很喜欢 go。我写过 pythonphp,都是解释性语言,想换一门编译型的,c++ 怕短时间入不了门,java 又太重,所以选择了 go。这里吐槽一下,php 的数组比 go 的 map 方便了 N 倍。
    感谢 @下水道里有只猫,golang 带我入门,我是看了他的博客源码才能下手重写项目的。

     

    建议

    最近学习了 laradock,发现是真的好用,docker-compose 都配置好了,启动的时候选择对应镜像,方便快捷,一件试部署。

    撸了快 3 年的 Laravel 了,尽量这周分享本人使用的多台服务器集群部署方案

     

     

    不过有个坑,就是我习惯直接批量重启容器,导致 nginx 容器连不上 php 容器

    #我要运行2次,因为容器启动顺序冲突,还经常php容器连不上nginx
    docker start $(docker ps -a | awk '{print $1}' | tail -n +2)

    最好在 laradock 目录下执行

    # 例:docker-compose up -d nginx mysql redis workspace php-worker
    docker-compose -d up 容器1 容器2 容器3 ...

     

    后期学习计划

    至于后期的学习计划,重心在容器化,docker+k8s,还有 go 的微服务方向。最近对数学起了兴趣,准备明年买几本高数书学习一下🤣。还有明年准备复习英语,这样就可以参与社区的翻译工作了。可惜自己基于 ss 协议搭建的梯子被封了,只能用电脑查阅文档了。

    转载:mouseleo - 多台服务器集群部署方案

    展开全文
  • ES集群部署方案

    2021-03-31 08:40:05
    ES集群部署方案 官方推荐master数设置为集群数/2+1,这里我们三台ES服务器,配置最少需要两台master,整个集群才可正常运行。在三个节点都参与选举的情况下,一个节点宕机了这个集群还是可用的。 一、基本配置 1、...

    ES集群部署方案

    官方推荐master数设置为集群数/2+1,这里我们三台ES服务器,配置最少需要两台master,整个集群才可正常运行。在三个节点都参与选举的情况下,一个节点宕机了这个集群还是可用的。

    一、基本配置
    1、准备三台虚拟机,root密码 root ;IP地址:
    192.168.xxx.xxx worker1
    192.168.xxx.xxx worker2
    192.168.xxx.xxx worker3
    并在对应的机器的/etc/hosts文件中设置对应的ip和机器名映射
    2、每台机器上创建用户mq并设置密码
    useradd es
    passwd es 密码输入:Anji@1024
    3、系统配置
    1)免密登录,切换es用户,在worker1、worker2、worker3上分别生成密钥:
    su es
    ssh-keygen
    2)同步公钥到其他服务器
    ssh-copy-id worker1
    ssh-copy-id worker2
    ssh-copy-id worker3
    3) 通过命令验证免密登录配置是否成功
    ssh worker1
    ssh worker2
    ssh worker2
    
    4、在三台机器上分别配置JAVA环境
    1)上传jdk8的tar包并解压到/app/jdk1.8目录
    tar -zxvf jdk-8u171-linux-x64.tar.gz
    mv jdk1.8.0_171/ /app/jdk1.8
    2)配置环境变量。使用 vi ~/.bash_profile编辑文件,添加一下配置,并使用source ~/.bash_profile使环境变量生效,输入java -version查看是否配置成功
    export JAVA_HOME=/app/jdk1.8/
    PATH=$JAVA_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
    export PATH
    

    搭建三节点ES集群,具体搭建步骤如下:

    
    #创建文件夹
    su es
    mkdir /usr/elasticsearch
    #上传Elasticsearch 到/usr/elasticsearch,并解压安装包
    cd /usr/elasticsearch
    tar xvf elasticsearch-6.8.13.tar.gz
     
    #修改机器的配置文件,如下:
    #1:修改jvm启动参数
    cd /usr/elasticsearch/elasticsearch-6.8.13/config
    vim jvm.options
    -Xms2g #根据自己机器情况修改、设置为物理内存一半最佳,可根据服务器内存去选择调
    -Xmx2g
    #2:一个进程在VMAs(虚拟内存区域)创建内存映射最大数量
    vim /etc/sysctl.conf
    vm.max_map_count=655360
    sysctl -p #配置生效
     
    #修改配置文件
    cd /usr/elasticsearch/elasticsearch-6.8.13/config
    vi elasticsearch.yml
     
     
    #node01的配置:
    cluster.name: es-cluster
    node.name: node01
    node.master: true
    node.data: true
    network.host: 0.0.0.0   
    http.port: 9200
    discovery.zen.ping.unicast.hosts: ["192.168.50.150","192.168.50.151","192.168.50.152"]
    discovery.zen.minimum_master_nodes: 2
    http.cors.enabled: true
    http.cors.allow-origin: "*"
     
    #node02的配置:
    cluster.name: es-cluster
    node.name: node02
    node.master: true
    node.data: true
    network.host: 0.0.0.0
    http.port: 9200
    discovery.zen.ping.unicast.hosts: ["192.168.50.150","192.168.50.151","192.168.50.152"]
    discovery.zen.minimum_master_nodes: 2
    http.cors.enabled: true
    http.cors.allow-origin: "*"
     
    #node03的配置:
    cluster.name: es-cluster
    node.name: node03
    node.master: true
    node.data: true
    network.host: 0.0.0.0
    http.port: 9200
    discovery.zen.ping.unicast.hosts: ["192.168.50.150","192.168.50.151","192.168.50.152"]
    discovery.zen.minimum_master_nodes: 2
    http.cors.enabled: true
    http.cors.allow-origin: "*"
     
    #配置文件重点参数解析
    (1)cluster.name
    集群名字,三台集群的集群名字都必须一致
    (2)node.name
    节点名字,三台ES节点字都必须不一样
    (3)discovery.zen.minimum_master_nodes:2
    表示集群最少的master数,如果集群的最少master数据少于指定的数,将无法启动,官方推荐node master数设置为集群数/2+1,我这里三台ES服务器,配置最少需要两台master,整个集群才可正常运行,
    (4)node.master该节点是否有资格选举为master,如果上面设了两个mater_node 2,也就是最少两个master节点,则集群中必须有两台es服务器的配置为node.master: true的配置,配置了2个节点的话,如果主服务器宕机,整个集群会不可用,所以三台服务器,需要配置3个node.masdter为true,这样三个master,宕了一个主节点的话,他又会选举新的master,还有两个节点可以用,只要配了node master为true的ES服务器数正在运行的数量不少于master_node的配置数,则整个集群继续可用,我这里则配置三台es node.master都为true,也就是三个master,master服务器主要管理集群状态,负责元数据处理,比如索引增加删除分片分配等,数据存储和查询都不会走主节点,压力较小,jvm内存可分配较低一点
    (5)node.data
    存储索引数据,三台都设为true即可
    (6)bootstrap.memory_lock: true
    锁住物理内存,不使用swap内存,有swap内存的可以开启此项
    (7)discovery.zen.ping_timeout: 3000s
    自动发现拼其他节点超时时间
    (8)discovery.zen.ping.unicast.hosts: ["172.16.0.8:9300","172.16.0.6:9300","172.16.0.22:9300"]
    设置集群的初始节点列表,集群互通端口为9300
     
     
    #安装过程可能出现的问题及解决方案
    [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at
    least [65536]
    #解决:切换到root用户,编辑limits.conf 添加类似如下内容
    vi /etc/security/limits.conf
    添加如下内容:
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096
     
    [2]: max number of threads [1024] for user [elsearch] is too low, increase to at least
    [4096]
    #解决:切换到root用户,进入limits.d目录下修改配置文件。
    vi /etc/security/limits.d/90-nproc.conf
    #修改如下内容:
    * soft nproc 1024
    #修改为
    * soft nproc 4096
     
    [3]: system call filters failed to install; check the logs and fix your configuration
    or disable system call filters at your own risk
    #解决:Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true
    cd /usr/elasticsearch/elasticsearch-6.8.13/config;
    vim elasticsearch.yml
    添加:
    bootstrap.system_call_filter: false
     
    [4]java.nio.file.AccessDeniedException: /usr/elasticsearch/elasticsearch-6.4.2/config/jvm.options
    切换到root,给es授权
    su root;  #输入密码
    chown -R es /usr/elasticsearch/elasticsearch-6.4.2
    
    展开全文
  • Nginx服务器部署Laravel项目主要修改nginx的配置文件: vi /usr/local/nginx/conf/nginx.confserver {listen 80;server_name www.chenhua.pro;root $root_path '/srv/www/default';index index....

    Nginx服务器上部署Laravel项目

    主要修改nginx的配置文件: vi /usr/local/nginx/conf/nginx.conf

    server {

    listen 80;

    server_name www.chenhua.pro;

    root $root_path '/srv/www/default';

    index index.php index.html index.htm;

    try_files $uri $uri/ @rewrite;

    location @rewrite {

    rewrite ^/(.*)$ /index.php?_url=/$1;

    }

    location ~ \.php {

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index /index.php;

    fastcgi_split_path_info ^(.+\.php)(/.+)$;

    fastcgi_param PATH_INFO $fastcgi_path_info;

    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    include fastcgi_params;

    }

    location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {

    root $root_path;

    }

    location ~ /\.ht {

    deny all;

    }

    }

    展开全文
  • 服务器虚拟化部署方案》由会员分享,可在线阅读,更多相关《服务器虚拟化部署方案(5页珍藏版)》请在人人文库网上搜索。1、1.1.1.服务器虚拟化部署方案核心交按n光齐交換机千兆.収衣禺act光纬虚拡优尢牛苞摘数据库...

    《服务器虚拟化部署方案》由会员分享,可在线阅读,更多相关《服务器虚拟化部署方案(5页珍藏版)》请在人人文库网上搜索。

    1、1.1.1.服务器虚拟化部署方案核心交按n光齐交換机千兆.収衣禺act光纬虚拡优尢牛苞摘数据库光纤交換机1.12数据库服务器设计说明在数据库服务器的配置中,对数据库服务器性能影响较大的有:CPU数据库查询和修改操作都需要消耗大量的 CPU资源,另外数据库都是多线程 应用程序,使用SMP(对称多处理)系统能够提供更好的性能。 CPU缓存结构也很重要, 因为数据库的对缓存的点击率是很高的。内存:最重要的性能因素。数据库需要大量的内存来缓存数据。如果服务器没有足够的内存来作为数据缓存, 将使用磁盘子系统作缓存, 磁盘子系统的访问速度比内存低 很多,这样就会降低系统性能。内存太低,甚至会因为过于频繁的。

    2、磁盘访问而导致服务器死机。配置256GBDDR内存,以满足应用系统的数据缓存。磁盘:即使内存很充足,系统还得执行大量的磁盘I/O,从硬盘中读取数据并写入修改的数据,因此磁盘的访问速度对性能影响也很大。另外,磁盘中的数据非常重要。为了提高访问数据库的性能,并保护磁盘中的重要数据,RAID磁盘控制器成为数据库服务器的标准配置。针对数据库随机读操作更多的特性,RAID5是最常用的选择。另外每个数据库服务器包含两个 HAB#,光纤磁盘阵列包含两个磁盘控制器。数据库服务器通过SAN光纤交换机与光纤磁盘阵列相连。任何一个数据库服务器与交换机之 间的通路断掉均可以从另外一个HBA卡与交换机的通路上继续进行数。

    3、据的传送。当任何一个交换机与磁盘阵列之间的通路断掉均可以从另外一个交换机与光纤盘阵控制器上 的通路继续进行数据的传送。数据库系统的衡量标准通常有两个:一个是整个数据库系统的运行性能,包括了一些典型操作的响应时间,以及在系统负载比较大的情况下,系统依然要有合理的运行表现;第二个是数据库系统的稳定性,即数据库系统能够稳定持续运行的时间,一般要求能够达到7X 24。数据库服务器采用了双机系统,使得数据库应用系统实现了冗余,大大提高了系统的安全性及稳定性,保证了系统7X 24小时对外提供服务,双机集群服务器共享磁盘阵列,数据均存放在共享存储中,无论是数据库还是应用, 两台服务器都安装相同的应用。一台机。

    4、器作为工作机,另外一台作为备份机,双机之间通过专用的心跳线来传递信息, 互相检测对方的工作状态,此时工作机拥有对磁盘阵列的占用权利,可以对磁盘阵列的数据进行读写,而备份机无法对磁盘阵列进行操作,甚至无法发现磁盘阵列, 这是通过双机软件的“软件锁”功能来实现的。工作机出现故障后,备份机的双机软件会监测到 故障的发生,用户只要重新向虚拟IP地址发起请求,集群软件将该请求分配到正常工作 的机器上,这样就完成了一次双机保障过程。113服务器虚拟化设计UaairOSGueM OSOS虚拟化平白管理系统駆动等可以部署不同通过服务器虚拟化技术可以在一台物理服务器上创建多个不同的虚拟机, 的操作系统,部署不同。

    5、的业务应用,每个虚拟机之间相互隔离。 当用户有新增的业务需求时,无需再去采购新的硬件,只需要在某一台物理机上创建一个虚拟机,分配其所需的硬件资源10分钟左右。即可,然后利用虚拟机模板进行操作系统部署,新的业务应用上线只需要约虚拟化的建设方案相比以往传统建设思路需满足以下要求:1)减少计划内停机时间通过使用虚拟机自动迁移功能, 在进行计划内服务器维护以至跨服务器的虚拟机实时迁移时,将不再需要为这些活动安排应用程序停机,从而不会对用户造成中断或导致服务丢失。2)实现业务高可用可提供高性价比的自动化重启,当发生硬件或操作系统故障时,几分钟内即可实现所有应用程序的重启。3)动态资源分布可对服务器资源进。

    6、行动态的负载平衡,以根据业务优先级向正确的应用程序提供正确的资源,从而让应用程序可以根据需要而缩减或增长。黄源 & Resource Pool4)节约能源当某服务器资源资源利用较低时,可将某台服务器上的应用系统迁移至其他服务器上, 该服务器自动下线,在保障业务应用的同时,降低用户的功耗。整个云数据中心虚拟化平台系统由三部分组成:控制管理中心、计算池、共享式存储池。控制管理中心:对整个虚拟化平台进行管理监控,是整个系统的管理端。对基础软硬件进行状态监控和性能监控 对虚拟化运营策略进行设置管理对基础软硬件异常情况触发报警,提醒用户及时维护问题设备对基础软硬件资源进行长期的统计分析,为高层次的资源调。

    7、度提供决策依据1.1.4.存储方案考虑到GG市公安局实际应用,建议部署2套存储系统,数据库系统和虚拟化系统各配置1套高性能光纤存储阵列,每套存储配置双活冗余控制器,提供24GB高速缓存,24块900G高性能企业级SAS硬盘,提供2仃B的裸容量。存储阵列提供 8G高速FC接口,通过2 台高速光纤通道交换机共享给服务器使用。存储网络采用双通道 FC-SAN方式组网,FC-SAN是目前比较成熟高效的存储组网方式, 提供以下特点:先进:光纤通道(FibreChannel)SCSI技术是SAN技术的物理基础。FibreChannel采用 高频(1GHz)串行位(Bit)传送,单环速度可达 100-200。

    8、Mbyte/s (相当于 Gigabit),双环共 用可达到200-400Mbyte/s。每个环可挂接126个SCSI设备,不加中继时最远距离可达 10Km。 而且有很大的继续发展空间。传统的SCSI总线电缆因受制于电子技术和电气物理特性的限制,在速度(20-160MB/S),容量(每条总线 8-16个SCS设备),距离(1.5-25米)等方面 都已近极限。高效:FibreChannel采用FC-AL仲裁环机制,使用 Token (令牌)的方式进行仲裁,其 效率远较传统 Ethernet的CSMA/CD为高;另外,SAN的网络协议为 SCSI-3在数据流的包/ 桢结构上,其效率远较 TCP/IP为高。安全:SAN不仅保留了传统的 RAID, HA,Cluster等安全措施,而且提供了双环冗余, 远程备份等新的安全手段。齐备:基于FibreChannel的交换及接入设备,女口 Switch,Hub,Bridge等,以及基于 SAN 技术的各种管理及应用软件完全成熟并在国内外已有大量实际应用案例。

    展开全文
  • 服务器硬件部署方案

    2021-08-09 03:28:09
    服务器硬件部署方案 内容精选换一换TaiShan 200服务器基于华为鲲鹏处理器,提供了强大的计算和并发能力。在高并发的Web业务场合可以充分发挥鲲鹏处理器多核、内存带宽高的优势,提升用户的Web业务性能。鲲鹏BoostKit...
  • 可扩展高可用 Seafile 集群本文档提供一个可扩展、高可用的 Seafile 集群架构。这种架构主要是面向较大规模的集群环境,可以通过增加更多的服务器来提升服务性能。...Seafile 服务器集群:一组 ...
  • 中小型企业可以通过部署私有服务器集群,来支撑企业项目的孵化、验证、开发、调试等阶段的基本需求。 针对部分项目的特殊需求,项目系统需要运行在私有的隔离网络环境中,都需要部署一套私有服务器集群。私有..
  • RabbitMQ 集群部署详解

    2021-07-26 23:40:06
    各 MQ 服务器配置本地主机名解析 10.0.0.31 mq1.example.local mq1 10.0.0.32 mq1.example.local mq1 10.0.0.33 mq1.example.local mq1 二、安装RabbitMQ sudo apt-get install curl gnupg debian-keyring debian-...
  • 基于Netty实现websocket集群部署实现方案 每天多学一点点~ 话不多说,这就开始吧… 文章目录基于Netty实现websocket集群部署实现方案1.前言2. 整体思路3. 代码demo4. 测试5.结语 1.前言 最近公司在做saas平台,其中...
  • 文章目录Redis Sentinel 集群部署方案概述Redis Sentinel 核心配置搭建Redis 集群搭建Sentinel集群修改Sentinel配置文件查看集群是否生效相关文章文章传送门 提示:本文主要讲如何搭建Redis Sentinel,关于Redis的...
  • 在实践中,我们往往习惯用单机模式快速构建一个 Nacos 开发/测试环境,而在生产中,出于高可用的考虑,一定需要使用 Nacos 集群部署模式。我的上一篇文章《一文详解 Nacos 高可用特性》提到了 Nacos 为高可用做了...
  • 集群部署图例 2021-04-01_60653c534a881.jpg 准备工作 两台阿里云ECS实例中均部署 gitee 仓库项目,传送 Git Gitee仓库自动部署; 实现文件双向实时同步,传送 Linux Sersync+Rsync实现文件双向实时同步; ...
  • 服务器集群与虚拟化

    2021-08-12 03:26:45
    服务器集群与虚拟化 内容精选换一换开源KVM虚拟化解决方案应用于线下虚拟化场景,包括单机、双机HA和多机集群,通过虚拟机迁移和HA确保业务可靠性,典型应用包括数据库、WEB和缓存服务器等。单机场景分析单机场景是...
  • 关键词:系统架构,O2OA,集群部署,集群配置,高可用配置,集群扩展O2OA平台使用分布式架构设计,提供灵活的扩展方案用于对服务器的负载能力进行扩展,保障系统的高可用性。本篇主要介绍如何部署O2OA服务器集群。说明...
  • 集群服务器解决方案,以多块核心板的组合方式,提供标准的软硬件接口,支持分布式AI运算,可用于机器学习、人工智能和大数据开发等,相对传统的集群服务器,拥有低功耗、高可管理性、高灵活性等特点。 该方案支持...
  • 一、概述:系统:CentOS5.0集群软件:Heartbeat节点1IP(主):192.168.1.105节点2IP(从):192.168.1.106virtual IP:192.168.1.102在节点1上使用uname -n 结果必须是node01,在节点2上同样使用uname -n结果也必须是node...
  • 部署HPC集群的实施方案 济南友泉软件有限公司 一、系统配置 1.1 网络拓扑 1.2 操作系统 登录节点:CentOS Linux release 7.3.1611 管理节点:CentOS Linux release 7.3.1611 计算节点:CentOS Linux release 7.9....
  • 游戏服务器部署

    2021-08-11 11:28:29
    游戏服务器部署 内容精选换一换场景公有云支持CSBS应用一致性备份对SAP HANA进行备份,在同一可用区内,通过部署单机SAP HANA,用于存放业务数据,随着数据量的增加,之前的备份方式已经满足不了RTO、RPO的要求,...
  • Minio 分布式集群部署

    2021-09-21 11:49:26
    启动方案简述3.2. 案例说明3.3. 制作分布式启动脚本3.4. 制作伪分布式启动脚本3.5. 登录minio四、分布式Minio负载均衡4.1. nginx安装4.2. 配置nginx4.3. 停止nginx服务4.4. 重新启动nginx4.5. 登录monio 分布式...
  • 物理服务器集群

    2021-08-07 07:05:59
    物理服务器集群 内容精选换一换裸金属服务器与周边服务的依赖关系如图1所示。管理节点、计算节点、存储节点均部署在一台Atlas 800 训练服务器上,按照图1所示进行逻辑组网。单机部署管理节点使用通用服务器,计算...
  • 服务器集群和虚拟化就是云吗 内容精选换一换华为云提供高性能、高可用、高安全的企业级容器服务,通过CNCF官方认证的两种Kubernetes服务供用户选择,包括云容器引擎(CCE)与云容器实例(CCI)。云容器引擎(Cloud ...
  • 安装包:apache-zookeeper-3.5.8-bin.tar.gz 服务器:centos7 jdk版本:1.8.0_251 zookeeper安装路径:/usr/zookeeper ,开始解压,如下所示: tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz 单服务器配置集群,...
  • 多台服务器集群后,配置权限、数据连接、模板、定时调度等,只能每台服务器一个个配置,不会自动同步到所有服务器。针对上述情况,在FineReport中提供新集群部署插件,将xml配置文件、finedb/logdb数据(定时任务、...
  • 服务器虚拟部署方案服务器虚拟化部署方案数据库服务器设计说明在数据库服务器的配置中,对数据库服务器性能影响较大的有:CPU:数据库查询和修改操作都需要消耗大量的CPU资源,另外数据库都是多线程应用程序,使用...
  • 常见ClickHouse集群部署架构

    千次阅读 2021-01-03 14:00:00
    CH的分片与副本功能完全靠配置文件实现,无法自动管理,所以当集群规模较大时,集群运维成本较高 数据副本依赖ZooKeeper实现同步,当数据量较大时,ZooKeeper可能会称为瓶颈 如果资源充足,建议使用方案一,主副本...
  • 涉及到的内容 LVS HAProxy Harbor etcd... 主要是考虑到了etcd的问题,如果只有两台物理机部署了5个etcd节点,那么部署了3个etcd的那台物理机故障了,则不满足etcd失败容忍度而导致etcd集群宕机,从而导致k8s集群宕机。
  • 集群项目搭建

    千次阅读 2021-02-26 09:25:31
    ## 集群项目搭建需要配置到项目中的信息已经在[集群基础设施准备](http://www.javamall.com.cn/docs/current/deploy/ji-qun-bu-shu/ji-qun-xiang-mu-da-jian.html)中配置完毕,下面将进行合并到项目中搭建集群项目:...
  • egg部署服务器

    2021-08-11 01:39:31
    egg部署服务器心血来潮拿egg写了一些接口,本篇记录一次egg通过宝塔部署服务器的流程首先服务器用的是腾讯云 标准型S4服务器话不多说进入正题首先第一步:安装宝塔宝塔Linux面板是提升运维效率的服务器管理软件...
  • 服务器虚拟化部署实施方案———————————————————————————————— 作者:———————————————————————————————— 日期:服务器虚拟化部署方案数据库服务器...
  • 近年来,服务器集群受到欢迎,但是有些用户可能对集群服务器不太了解。那么,什么是集群服务器呢?集群技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 125,842
精华内容 50,336
关键字:

服务器集群部署方案