RHCS多节点布置使用企业环境51CTO博客 - 凯发娱乐

RHCS多节点布置使用企业环境51CTO博客

2019-01-03 16:28:13 | 作者: 昌盛 | 标签: 节点,使用,集群 | 浏览: 2857

一路磕磕碰碰终所以换了第三份作业,一路做过来,看着自己上一年写的博客,发现自己真的生长了一些。上星期忽然51cto的米米同学说参与大学生博客大赛,51cto见证了我漫漫的生长进程,我想就算不是为了竞赛,为了自己,给这个好的渠道尽力证明一下自己。一切我又来了!

我很喜欢集群,开端的时分便是搞这个RHCS,作为redhat对企业的集群环境的产品,RHCS好用,但是不好做,原因主要是作为RHCS作为付费集群套件一方面是本钱高,另一方面RHCS的资料相对于其他开源集群产品相对较少。官方的文档也比较倾向介绍产品自身的优点,特别是在裁定盘部分,官方主张是直接找厂家咨询。无法之下我只好用下策,先是虚拟机测验,然后是真机环境测验,一下是整个测验的环境。跟着做一把,必定会有协助的啦。

RHCS的介绍这儿就不复述了,网络上的资料许多,官方的文档特别详细,刻苦的同学能够通读一边,通俗易懂。

1.1、 集群网络规划

主机操作体系rhel5.8。3台DELL R910设备,。网卡eth1与其它2个节点的IPMI口组成Fence域,上联一台交换机sw1,事务口都为eth0上联交换机sw1,由于试验环境有限,没有做网卡bond.

其间DELL的fenceing功用是经过办理口中的ipmi2.0完结的,ipmi能够直接装备ip地址,用户名暗码便利远程办理效劳器的电源。

节点名

网卡

功用

Ip地址

用户

暗码

补白

test001

eth0

事务

192.168.1.101

root

passwd



eth1

办理

192.168.2.101

root

passwd



ipmi

fence

192.168.2.4

root

passwd


test002








eth0

事务

192.168.1.102

root

passwd



eth1

办理

192.168.2.102

root

passwd



ipmi

fence

192.168.2.5

root

passwd


test003








eth0

事务

192.168.1.103

root

passwd



eth1

办理

192.168.2.103

root

passwd



ipmi

fence

192.168.2.6

root

passwd


1.2、 根底装备阐明

留意:一切的装备都要在三台节点完结,这儿仅做test001的演示。test002,test003与test001装备办法共同。

1.2.1、 装置rhel5.8操作体系

体系装置进程,按需求装置,这儿就不做阐明。

1.2.2、 依照上表装备相应的网卡事务ip,办理ip

修改:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
IPADDR=192.168.1.101
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
USERCTL=no

修改:/etc/sysconfig/network-scripts/ifcfg-eth3

DEVICE=eth3
IPADDR=192.168.2.101
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
USERCTL=no
1.2.3、 Ipmi口的装备

装置ipmi东西

yum install OpenIPMI OpenIPMI-develOpenIPMI-tools OpenIPMI-libs
/etc/init.d/ipmi start
chkconfig ipmi on

进行IPMI的根本网络装备:

以下指令别离装备了IP地址、掩码、网关、答应进入开关。

ipmitool lan set 1 ipaddr 192.168.2.4
ipmitool lan set 1 netmask 255.255.255.0
ipmitool lan set 1 defgw ipaddr 192.168.2.1
ipmitool lan set 1 access on
ipmitool lan print 1 # 检查网络装备成果

敞开默许用户、设置默许暗码:

ipmitool lan set 1 user
ipmitool lan set 1 password passwd
ipmitool user list 1 # 显现当时用户列表

经过检查用户列表。能够看到当时有两个用户,一个是默许匿名用户,一个是root。而root的uid = 2。

所以要设置一下root用户的暗码,依照提示输入两次暗码:

ipmitool user set password 2

暗码设为:passwd

在多台效劳器上装备好IPMI后,测验能够ping通设置好的IP地址。

以下为两种查验办法:

ping 192.168.2.4
ipmitool -H 192.168.2.4-U root power status

正常回来成果会是:poweris on。

1.2.4、 装备主机名为test001,test002,test003

修改/etc/sysconfig/network文件

HOSTNAME=test00X

1.2.5、 装备/etc/hosts主机名与ip的映射联系

修改/etc/hosts 文件

192.168.1.101 test001
192.168.1.102 test002
192.168.1.103 test003
192.168.2.4    ipmi01
192.168.2.5   ipmi02
192.168.2.6   ipmi03
192.168.1.104 vip01
192.168.1.105 vip02
2、 RHCS集群装备(test001)

此部分的装备要在一切的节点操作,这儿给出节点test001的操作,test002,test003的操作与test001的相同。

2.1、 Yum装备(test001)

将rhel5.8光盘挂在在/mnt下面

[root@test001 ~]#mount –o loop rhel5.8.iso /mnt

在/etc/yum.repos.d/目录下新建rhel.repo文件,

[root@test003 ~]# vim /etc/yum.repos.d/rhel.repo
[rhel]
name=rhel
baseurl=file:///mnt/Server
gpgcheck=0
[storage]
name=storage
baseurl=file:///mnt/ClusterStorage
gpgcheck=0
[cluster]
name=cluster
baseurl=file:///mnt/Cluster
gpgcheck=0
2.2、 RHEL5.8集群软件装置(test001)2.2.1、 装置clustering
[root@test001 ~]# yum groupinstallClustering
Loaded plugins: katello, product-id,security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
Setting up Group Process
Resolving Dependencies
--> Running transaction check
…………
Installed:
 Cluster_Administration-en-US.noarch 0:5.8-1.el5                              
 cluster-cim.x86_64 0:0.12.1-7.el5                                            
 cluster-snmp.x86_64 0:0.12.1-7.el5                                           
 ipvsadm.x86_64 0:1.24-13.el5                                                
 luci.x86_64 0:0.12.2-51.el5                                                 
 modcluster.x86_64 0:0.12.1-7.el5                                             
 piranha.x86_64 0:0.8.4-24.el5                                               
 rgmanager.x86_64 0:2.0.52-28.el5                                             
 ricci.x86_64 0:0.12.2-51.el5                                                
 system-config-cluster.noarch 0:1.0.57-12                                     
Dependency Installed:
 cman.x86_64 0:2.0.115-96.el5                                                
 net-snmp.x86_64 1:5.3.2.2-17.el5                                             
 oddjob.x86_64 0:0.27-12.el5                                                 
 oddjob-libs.x86_64 0:0.27-12.el5                                             
 openais.x86_64 0:0.80.6-36.el5                                              
 perl-Net-Telnet.noarch 0:3.03-5                                              
 perl-XML-LibXML.x86_64 0:1.58-6                                              
 perl-XML-LibXML-Common.x86_64 0:0.13-8.2.2                                   
 perl-XML-NamespaceSupport.noarch 0:1.09-1.2.1                                
 perl-XML-SAX.noarch 0:0.14-11                                               
 pexpect.noarch 0:2.3-3.el5                                                   
 python-imaging.x86_64 0:1.1.5-7.el5                                          
 python-pycurl.x86_64 0:7.15.5.1-8.el5                                        
 python-suds.noarch 0:0.4.1-2.el5                                             
 tix.x86_64 1:8.4.0-11.fc6                                                   
 tkinter.x86_64 0:2.4.3-46.el5                                               
 tog-pegasus.x86_64 2:2.11.0-3.el5                                            
 tog-pegasus-libs.x86_64 2:2.11.0-3.el5                                       
Complete!
2.2.2、 装置逻辑卷集群包lvm2-cluster
[root@test001 ~]# yum -y installlvm2-cluster
Loaded plugins: katello, product-id,security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
Setting up Install Process
Resolving Dependencies
--> Running transaction check
……
Installing:
 lvm2-cluster    x86_64   2.02.88-7.el5       storage      301 k
Installed:
 lvm2-cluster.x86_64 0:2.02.88-7.el5                                          
Complete!
发动集群功用:
[root@test001 ~]# lvmconf --enable-cluster


留意:确保第二节部分(test001节点)的操作过程,其他两节点(test002,test003)都做了。

2.2.3、 装备裁定盘

rhcs裁定盘必定要用裸设备制造,不能给lvm办理做成逻辑卷,而且这个裁定盘有必要是同享磁盘,能够是san同享存储或其他的同享磁盘才能够,满意这几个条件才能做。在恣意节点制造都能够:

2.2.3.1格式化分区
[root@test001 ~]# fdisk /dev/hda
Device contains neither a valid DOSpartition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes willremain in memory only,
until you decide to write them. After that,of course, the previous
content wont be recoverable.
Warning: invalid flag 0x0000 of partitiontable 4 will be corrected by w(rite)
Command (m for help): p
Disk /dev/hda: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
  Device Boot      Start         End      Blocks  Id  System
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK(1-261, default 261): +20M
Command (m for help): p
Disk /dev/hda: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
  Device Boot      Start         End      Blocks  Id  System
/dev/hda1               1           3       24066  83  Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@test001 ~]# partprobe
2.2.3.2 制造裁定盘
[root@test001 ~]# mkqdisk -c /dev/hda1 -lqdisk01
mkqdisk v0.6.0
Writing new quorum disk label qdisk01 to/dev/hda1.
WARNING: About to destroy all data on/dev/hda1; proceed [N/y] ? y
Initializing status block for node 1...
Initializing status block for node 2...
Initializing status block for node 3...
Initializing status block for node 4...
Initializing status block for node 5...
Initializing status block for node 6...
Initializing status block for node 7...
Initializing status block for node 8...
Initializing status block for node 9...
Initializing status block for node 10...
Initializing status block for node 11...
Initializing status block for node 12...
Initializing status block for node 13...
Initializing status block for node 14...
Initializing status block for node 15...
Initializing status block for node 16...
2.2.3.3 检查裁定盘状况:
[root@test001 ~]# mkqdisk –L 
mkqdisk v0.6.0
/dev/disk/by-id/ata-QEMU_HARDDISK_QM00001-part1:
/dev/disk/by-path/pci-0000:00:01.1-ide-0:0-part1:
/dev/hda1:
       Magic:                eb7a62c2
       Label:                qdisk01
       Created:              Wed Apr 24 21:03:56 2013
       Host:                 test001
       KernelSector Size:   512
       RecordedSector Size: 512

在剩余的一切节点运转:

[root@test002 ~]# partprobe
[root@test003 ~]# partprobe
3、 新建集群3.1、 集群东西介绍

rhcs有两种东西能够装备集群,一种是c/s结构的web界面的装备东西,效劳端是luci,客户端是ricci默许装置clustering包组的时分都装置了这两个东西。

第二种是system-config-cluster是体系东西,但是在rhel6.0版别之后就没有这个东西了。

3.1.1、 Luci运用装备

第一次运用的时分要装备用户暗码,默许的用户是admin:

[root@test001 ~]# luci_admin init
Initializing the luci server
Creating the admin user
Enter password: #暗码
Confirm password: #承认暗码
Please wait...
The admin password has been successfullyset.
Generating SSL certificates...
The luci server has been successfullyinitialized
You must restart the luci server forchanges to take effect.
Run "service luci restart" to doso
[root@test001 ~]# /etc/init.d/luci restart
Shutting down luci:                                        [  OK  ]
Starting luci: Generating https SSLcertificates...  done
                                                          [  OK  ]
Point your web browser tohttps://test001:8084 to access luci

然后用web游览器登陆https://test001:8084

3.1.2、 System-config-cluster

这个东西在体系东西里边,能够找到。或许直接在命令行下运转:

[root@test001~]#system-config-cluster


4、 运用system-config-cluser新建集群

点击:createNew configuration

填入集群姓名:test

运用裁定盘:参数设置:

Miniumscore:修改成1,默许是3.

增加程序:ping–c2 –t2 192.168.1.254 这个254是事务网关!!

Lable:qdisk01这个非常重要,不是乱填的,qdisk01是上面第二节咱们建的裁定盘他的标签是qdisk01,这儿引荐用标签。

Score:1,距离次数:interval:2

承认无误完:OK

4.1.1、 增加集群节点

挑选:clusternodes,输入节点名(这个节点名要与/etc/hosts里边的保持共同)

将test001,test002,test003都按这个办法增加进去。

4.1.2、 增加fence设备:

由于dell效劳器的办理口用的是ipmi口,选用fence_ipmilan,而且将上面第一节部分装备的ip,用户名,暗码(root,root.123)填入即可。把三台dell效劳器的ipmi接口都增加进去。

点击:fencedevice ,增加新的fence 设备,在下拉菜单中找到相应的ipmifence设备,将上面第一节部分装备的ip,用户名,暗码(root,root.123)填入即可。

4.1.3、 将fence设备增加到节点。

选中:clusternodes下面的test001,然后点击在右下角有一个managefencing for this node。呈现如下界面:点击:Adda New Fence Level

现在ipmi01这个impi设备给test001,点击ok。(一个ipmi设备只用给一个节点运用,用完了就不能再给其他节点了)

Test002,test003节点都装置这个办法增加ipmi02,ipmi03的fence设备。

4.1.4、 增加失效康复域

留意:这个域并不是热搬迁,是冷康复(coldrecovery)期间的效劳会有一小段时刻无法供给效劳。


点击:FaailoverDomains,增加新的失效域。输入与姓名(这个域姓名能够运用详细使用的姓名来取比较便利办理这儿做测验就选用fdx的命名办法),点击OK。

将一切节点都增加到fd01里边,test001,test002,test003,设置优先级,1的优先级最高,效劳搬迁的时分是依据这个优先级来判别搬迁到详细的哪一台效劳器上。将上个选项都打上√。

留意:失效域看详细事务需求,在rhcs中不是有必要的装备,一个域里边能够运转许多效劳,也能够一个使用之运转在一个域里边。效劳只能在域中的效劳器间搬迁。

4.1.5、增加resource4.1.5.1增加vip

4.1.5.2增加文件体系

4.1.5.3增加效劳发动脚本

4.1.6、 创立一个使用

点击services,创立一个使用web_server,点击:Adda shared resource to thisService,并将方才创立的三个资源都增加给它。在右上角挑选失效域fd01,然后策略为搬迁(relocate),点击封闭。然后保存到/etc/cluster/cluster.conf

4.1.7、 分发集群装备文件
scp /etc/cluster/cluster.conf  test002:/etc/cluster/
scp /etc/cluster/cluster.conf  test003:/etc/cluster/
4.2、 发动集群4.2.1、 cman

在一切节点发动cman效劳


[root@test001 ~]# /etc/init.d/cman start
Starting cluster:
  Loading modules... done
  Mounting configfs... done
  Starting ccsd... done
  Starting cman... done
   Startingdaemons... done
  Starting fencing... done
                                                          [  OK  ]
4.2.2、 clvm

在一切节点发动clvm

[root@test001 ~]# /etc/init.d/clvmd start
Starting clvmd:
Activating VG(s):   2 logical volume(s) in volume group "vg_hninms"now active
  1logical volume(s) in volume group "test01" now active
                                                          [  OK  ]
4.2.3、 qdisk

在一切节点发动qdiskd

[root@test001 ~]# /etc/init.d/qdiskd  restart
4.2.4、 rgmanager

在一切节点发动

[root@test001 ~]# /etc/init.d/rgmanager  start
5、 测验

检查集群运转状况

[root@test001 ~]# clustat –i 1
Cluster Status for test @ Wed Apr 2421:32:42 2013
Member Status: Quorate 
 Member Name                             ID   Status
 ------ ----                             ---- ------
 test001                                     1 Online,Local, rgmanager
 test002                                     2 Online,rgmanager
 test003                                     3 Online,rgmanager
/dev/disk/by-id/ata-QEMU_HARDDISK_QM0000  0 Online, Quorum Disk
 Service Name                   Owner (Last)                   State        
 ------- ----                   ----- ------                   -----        
 service:web_server             test002                        started

这个集群中有前面增加的web_serser使用,现在是在test002上运转,状况是started,下面检查一下vip是否分配正常,在test002中运转:ip addr

[root@test002 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu16436 qdisc noqueue
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
   inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
   link/ether 52:54:00:a7:f4:ea brd ff:ff:ff:ff:ff:ff
   inet 192.168.1.102/24 brd 192.168.0.255 scope global eth0
 inet 192.168.1.104/24 scope global secondaryeth0
   inet6 fe80::5054:ff:fea7:f4ea/64 scope link
      valid_lft forever preferred_lft forever
3: sit0: <NOARP> mtu 1480 qdisc noop
   link/sit 0.0.0.0 brd 0.0.0.0

检查使用的文件体系是否挂在在指定的目录下面:

[root@test002 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_hninms-lv_root
                       13G  3.8G 7.9G  33% /
/dev/vda1              99M   13M  82M  14% /boot
tmpfs                 390M     0 390M   0% /dev/shm
/dev/mapper/test01-lvtest01
                       97M  5.6M  87M   7% /var/www/html
5.1、 搬迁测验

将test002中的httpd效劳停掉。

[root@test002 ~]# /etc/init.d/httpd stop
Stopping httpd:                                           [  OK  ]

检查test002的日志

###test002

Apr 24 21:44:17 test002clurgmgrd: [4632]: <err> script:httpd: status of /etc/init.d/httpd failed(returned 3)
Apr 24 21:44:17 test002 clurgmgrd[4632]:<notice> status on script "httpd" returned 1 (generic error)
Apr 24 21:44:17 test002 clurgmgrd[4632]:<notice> Stopping service service:web_server
Apr 24 21:44:17 test002 avahi-daemon[2297]:Withdrawing address record for 192.168.1.104 on eth0.
Apr 24 21:44:27 test002 clurgmgrd[4632]:<notice> Service service:web_server is recovering
Apr 24 21:44:31 test002 clurgmgrd[4632]:<notice> Service service:web_server is nowrunning on member 3

检查test003的日志

#########test003

Apr 24 21:37:36 test003 clurgmgrd[3015]: <notice> Member 2 shutting down
Apr 24 21:38:27 test003 clurgmgrd: [3015]:<err> script:httpd: status of /etc/init.d/httpd failed (returned 3)
Apr 24 21:38:27 test003 clurgmgrd[3015]:<notice> status on script "httpd" returned 1 (generic error)
Apr 24 21:38:27 test003 clurgmgrd[3015]:<notice> Stopping service service:web_server
Apr 24 21:38:27 test003 avahi-daemon[2298]:Withdrawing address record for 192.168.1.104 on eth0.
Apr 24 21:38:37 test003 clurgmgrd[3015]:<notice> Service service:web_server is recovering
Apr 24 21:38:37 test003 clurgmgrd[3015]:<notice> Recovering failed service service:web_server
Apr 24 21:38:37 test003 kernel: kjournaldstarting.  Commit interval 5 seconds
Apr 24 21:38:37 test003 kernel: EXT3 FS ondm-2, internal journal
Apr 24 21:38:37 test003 kernel: EXT3-fs: mounted filesystem with ordered data mode.
Apr 24 21:38:39 test003 avahi-daemon[2298]: Registering new address record for 192.168.1.104 on eth0.
Apr 24 21:38:40 test003 clurgmgrd[3015]:<notice> Service service:web_server started

在检查集群的状况:

效劳这时分现已搬迁到test003

Apr 24 21:44:31 test003 clurgmgrd[9700]:<notice> Service service:web_server started

Cluster Status for test @ Wed Apr 2421:47:08 2013

Member Status: Quorate

Member Name                             ID   Status

------ ----                             ---- ------

test001                                     1 Online,Local, rgmanager

test002                                     2 Online,rgmanager

test003                                     3 Online,rgmanager

/dev/disk/by-id/ata-QEMU_HARDDISK_QM0000    0 Online, Quorum Disk

Service Name                   Owner (Last)                   State        

------- ----                   ----- ------                   -----        

service:web_server             test003                        started      

#####test

5.2、 裁定盘测验

检查集群状况

[root@test001 ~]# clustat –i1

Cluster Status for test @ Wed Apr 2423:27:24 2013

Member Status: Quorate

Member Name                             ID   Status

------ ----                             ---- ------

test001                                     1 Online,rgmanager

test002                                     2 Online, Local, rgmanager

test003                                     3 Online,rgmanager

/dev/disk/by-id/ata-QEMU_HARDDISK_QM0000    0 Online, Quorum Disk

Service Name                   Owner (Last)                   State        

------- ----                   ----- ------                   -----        

service:ftp_server             test003                        started      

service:web_server             test001                        started      

这儿做一下阐明:在test001上多了一个使用ftp_server,这个使用增加的办法与web_server的办法是相同的,效劳器上装置ftp效劳器,将效劳器的资源增加给使用即可(文件体系,效劳ip,发动脚本)

裁定盘测验阐明:裁定测验是在虚拟机上完结的,裁定盘是为了处理小集群使用存活的问题而存在的.在一般没有裁定盘的集群里边,例如五台节点只需死了超越两台那么该集群就无裁定,集群就挂起。有裁定盘的状况下,能够做到五节点死了四个,集群还能活着,仅仅单台承载一切使用也会很费劲,搬迁时刻会比较长,详细呈现的状况仍是没办法彻底模仿。

在有运转使用的两个节点test003,test001运转:

iptables -A OUTPUT -d 192.168.0.55 -p icmp -j REJECT

将test003,test001的裁定盘的进程阻断,这样就能够模仿裁定盘的功用。Qdisk 进程会向事务网关发送ping测验包,阻断测验包就会导致裁定失利,失利就会导致节点被fence维护起来,然后用dlm锁起,知道将节点重启之后才开释锁,然后将效劳搬迁到test002.

检查成果:一般状况下,3节点死了2个,集群必死,但是这种状况集群还活着。

[root@test002 ~]# clustat –i 1

Member Status: Quorate

Member Name                             ID   Status

------ ----                             ---- ------

test001                                     1 Online,rgmanager

test002                                     2 Online,Local, rgmanager

test003                                     3 Online,rgmanager

/dev/disk/by-id/ata-QEMU_HARDDISK_QM0000    0 Online, Quorum Disk

Service Name                   Owner (Last)                   State        

------- ----                   ----- ------                   -----        

service:ftp_server             test002                        started      

service:web_server             test002                        started  

然后等候,test001,test003正常重启后,参加集群这时分集群会依据,失效域里边的优先级来重现搬迁使用这时分,本来在test002上的web_server,跟ftp_server都会迁到各自域里边权限最好的效劳器上。

[root@test001 ~]# clustat –i 1

Member Status: Quorate

Member Name                             ID   Status

------ ----                             ---- ------

test001                                     1 Online, rgmanager

test002                                     2 Online,Local, rgmanager

test003                                     3 Online,rgmanager

/dev/disk/by-id/ata-QEMU_HARDDISK_QM0000    0 Online, Quorum Disk

Service Name                   Owner (Last)                   State        

------- ----                   ----- ------                   -----        

service:ftp_server             test003                        started      

service:web_server             test001                        started  

到此,测验结束,大部分的内容都有测验成功,包含效劳搬迁,单台节点存活运用qdisk来保持集群存活,效劳搬迁等。此部分内容未选用GFS2来作为集群文件体系进行测验,选用GFS2替换本文中的ext3即可。

如有什么问题,便利留言或许私信给我,我再做进一步的测验,谢谢我们啦!  




版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章