Rootop 服务器运维与web架构

2015-03-09
发表者 Venus
AMS\FMS修改hds-live、hls-live直播存储路径已关闭评论

AMS\FMS修改hds-live、hls-live直播存储路径

在服务器上一般都需要修改文件默认存储路径,默认存储是在c盘下,这样很容易爆满,所以放到其它大的分区或nas中。

更改直播存储目录:
编辑 C:\Program Files\Adobe\Adobe Media Server 5\conf\ams.ini

VHOST.APPSDIR = c:\applications #存储目录,这里我就一个分区,所以放到c盘下。

复制配置文件:
直接把C:\Program Files\Adobe\Adobe Media Server 5\applications\下所有目录复制到c:\applications下
这样直播时,视频会记录到c盘的applications下,然后修改apache,直播视频从c盘的applications下找。

<Location /hds-live> #hds直播
HttpStreamingEnabled true
HttpStreamingLiveEventPath “c:\applications”
HttpStreamingContentPath “c:\applications”
HdsFmsDirPath “..”
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
Options -Indexes FollowSymLinks
</Location>

<Location /hls-live> #hls直播
HLSHttpStreamingEnabled true
HttpStreamingLiveEventPath “c:\applications”
HttpStreamingContentPath “c:\applications”
HLSMediaFileDuration 8000
HLSSlidingWindowLength 6
HLSFmsDirPath “..”
HttpStreamingUnavailableResponseCode 503
HLSAMFToId3MappingFilePath conf/AMF_to_Id3_Mapping.xml
HLSM3U8MaxAge 2
HLSTSSegmentMaxAge -1
HLSMetaMaxAge 3600
HLSMaxEventAge 300
Options -Indexes FollowSymLinks
</Location>

重启AMS和apache服务,使用OSMF Player测试。

HDS访问地址:http://42.62.101.177/hds-live/livepkgr/目录名/liveevent/流名称.f4m
HLS访问地址:http://42.62.101.177/hls-live/livepkgr/目录名/liveevent/流名称.m3u8

再次提醒hds需要播放器支持,hls可以直接在苹果设备的Safari上看。

2015-03-06
发表者 Venus
heartbeat3.0安装配置测试过程已关闭评论

heartbeat3.0安装配置测试过程

heartbeat每台机器需要2块网卡,第二块用于心跳检测,用网线直连。
系统信息:
主机名     系统版本               物理IP                   心跳接口IP
primary centos6.5×64  eth0 192.168.0.175  eth1 10.10.10.1
backup  centos6.5×64  eth0 192.168.0.176   eth1 10.10.10.2

虚拟IP(VIP): 192.168.0.177 提供服务
iptables 关闭,selinux关闭。

实现目标:
用heartbeat对apache进行高可用管理,首先yum安装httpd,添加测试页。

primary:
echo primary > /var/www/html/index.html
backup:
echo backup > /var/www/html/index.html

关闭两台机器的httpd服务。由heartbeat控制服务状态。

primary配置:

修改两台机器的host文件加入主机名和ip映射:

192.168.0.175 primary
192.168.0.176 backup

安装heartbeat:

[root@primary ~]# yum install -y epel-* #epel源
[root@primary ~]# yum install -y heartbeat

默认会安装到/etc/ha.d/下,需要三个配置文件ha.cf、haresources、authkeys。
这三个配置文件不会被创建,需要从/usr/share/doc/heartbeat-3.0.4/下拷贝过去。

[root@primary ha.d]# cp /usr/share/doc/heartbeat-3.0.4/ha.cf .
[root@primary ha.d]# cp /usr/share/doc/heartbeat-3.0.4/haresources .
[root@primary ha.d]# cp /usr/share/doc/heartbeat-3.0.4/authkeys .

配置ha.cf:

logfacility local0 # 日志记录等级
keepalive 1 #心跳频率,2表示2秒;200ms则表示200毫秒
deadtime 5 #节点死亡时间,就是过了10秒后还没有收到心跳就认为主节点死亡
warntime 10 #告警时间
initdead 30 #初始化时间
udpport 694 #心跳信息传递的udp端口
ucast eth1 10.10.10.2 #在eth1接口采用udp单播来通知备份机(10.10.10.2)心跳信息
auto_failback off #如果主节点重新恢复,主节点将抢占资源恢复服务,如果为off,则只当备用节点当掉后,主节点恢复
watchdog /dev/watchdog #如果本节点在超过1分钟后还没有发出心跳,那么本节点自动重启
node primary #主节点名称,与主机名一致
node backup #备用节点名称
ping 10.10.10.254 #通过ping来监测心跳是否正常

配置haresources:

primary IPaddr::192.168.0.177/24/eth0 httpd

配置authkeys(身份认证,主备必须一样):

auth 3
3 md5 hello

修改authkeys权限:

[root@primary ha.d]# chmod 600 authkeys

把三个配置文件复制到备份机上:

[root@primary ha.d]# scp ha.cf haresources authkeys root@192.168.0.176:/etc/ha.d/
root@192.168.0.176's password:
ha.cf 100% 10KB 10.3KB/s 00:00
haresources 100% 5950 5.8KB/s 00:00
authkeys 100% 665 0.7KB/s 00:00

修改备份机的ha.cf中ucast参数。

ucast eth1 10.10.10.1 #把10.2改为10.1,在eth1接口采用udp单播来通知主机(10.10.10.1)心跳信息

两台机器,启动heartbeat服务:

[root@primary ha.d]# /etc/init.d/heartbeat start
[root@backup ha.d]# /etc/init.d/heartbeat start

查看状态:
主:

[root@primary ~]# /etc/init.d/heartbeat status
heartbeat OK [pid 5142 et al] is running on primary [primary]...
[root@primary ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
 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 state UP qlen 1000
 link/ether 00:50:56:bf:77:dc brd ff:ff:ff:ff:ff:ff
 inet 192.168.0.175/24 brd 192.168.0.255 scope global eth0
 inet 192.168.0.177/24 brd 192.168.0.255 scope global secondary eth0
 inet6 fe80::250:56ff:febf:77dc/64 scope link
 valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:50:56:bf:69:87 brd ff:ff:ff:ff:ff:ff
 inet 10.10.10.1/16 brd 10.10.255.255 scope global eth1
 inet6 fe80::250:56ff:febf:6987/64 scope link
 valid_lft forever preferred_lft forever

备:

[root@backup ~]# /etc/init.d/heartbeat status
heartbeat OK [pid 7724 et al] is running on backup [backup]...
[root@backup ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
 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 state UP qlen 1000
 link/ether 00:50:56:bf:09:c7 brd ff:ff:ff:ff:ff:ff
 inet 192.168.0.176/24 brd 192.168.0.255 scope global eth0
 inet6 fe80::250:56ff:febf:9c7/64 scope link
 valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:50:56:bf:38:29 brd ff:ff:ff:ff:ff:ff
 inet 10.10.10.2/16 brd 10.10.255.255 scope global eth1
 inet6 fe80::250:56ff:febf:3829/64 scope link
 valid_lft forever preferred_lft forever

关闭primary的服务,查看备机,vip已发生漂移,并且httpd服务跟随启动。

PS:
haresources配置文件详解(转自网络):

haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等集群资源。
文件每一行可以包含一个或多个资源脚本名,资源之间使用空格隔开,参数之间使用两个冒号隔开,在两个HA节点上该文件必须完全一致

此文件的一般格式为:
node-name network <resource-group>
node-name表示主节点的主机名,必须和ha.cf文件中指定的节点名一致。
network用于设定集群的IP地址、子网掩码和网络设备标识 等。需要注意的是,这里指定的IP地址就是集群对外服务的IP地址。
resource-group用来指定需要Heartbeat托管的服务,也就是这些服务可以由Heartbeat来启动和关闭。
如果要托管这些服务,就必须将服务写成可以通过start/stop来启动和关闭的脚步,然后放到/etc /init.d/或者/etc/ha.d/resource.d/目录下
Heartbeat会根据脚本的名称自动去/etc/init.d或者/etc /ha.d/resource.d/目录下找到相应脚步进行启动或关闭操作。

下面对配置方法进行具体说明:

node1 IPaddr::192.168.60.200/24/eth0/ Filesystem:: /dev/sdb5::/webdata::ext3 httpd tomcat
其中,node1是HA集群的主节点,IPaddr为heartbeat自带的一个执行脚本,Heartbeat首先将执行/etc/ha.d/resource.d/IPaddr 192.168.60.200/24 start的操作,
也就是虚拟出一个子网掩码为255.255.255.0,IP为192.168.60.200的地址。此IP为Heartbeat对外提供服务的网络地址,同时指定此IP使用的网络接口为eth0。
接着,Heartbeat将执行共享磁盘分区的挂载操作,”Filesystem::/dev/sdb5::/webdata::ext3″相当于在命令行下执行mount操作,即”mount -t ext3 /dev/sdb5 /webdata”。
最后依次启动httpd和Tomcat服务。

注意 主节点和备份节点中资源文件haresources要完全一样

2015-03-04
发表者 Venus
lnmp1.1一键安装版本更新已关闭评论

lnmp1.1一键安装版本更新

lnmp1.1更新内容:

lnmp安装脚本添加yum安装编译环境判断,提高安装成功率。
修改内存判断,mysql-5.6.19内存小于512的话可能无法启动,这里判断是否大于等于1G。
升级phpmyadmin至phpMyAdmin-4.3.11。
添加vsftpd安装脚本 install_vsftpd.sh。
添加nginx虚拟主机增加脚本 add_vhost.sh。

百度网盘地址:

链接:http://pan.baidu.com/s/1mgFv34k
密码:vfos

 

2015-03-03
发表者 Venus
lvs中windows做为realserver的配置已关闭评论

lvs中windows做为realserver的配置

系统版本:Server 2008R2

首先添加本地回环网卡:
在”运行”中输入”hdwwiz“回车,打开硬件添加向导
下一步-安装我手动从列表选择的硬件– 拖动下拉条,选择”网络适配器“-下一步-从厂商中选择”Microsoft“,网络适配器选择
Microsoft loopback Adapter“-下一步下一步完成即可。
建议修改网卡名称,比如realserver,方便于物理网卡区分。这样创建的网卡类似于linux下的lo:0

Server 2008网卡默认的stronghost处于启用状态,这个设置可以防止跨接口转发数据包,表明:来自一个网络适配器的请求不会被环回适配器处理,因为这个请求来自于不同的网络适配器。
为了将环回适配器从stronghost切换为weakhost,需要运行以下四条命令,要不然TCP的状态会一直处于SYN_RECV 状态。所以执行下面命令:

@echo off
netsh interface ipv4 set interface "realserver" weakhostreceive=enabled
netsh interface ipv4 set interface "realserver" weakhostsend=enabled
netsh interface ipv4 set interface "本地连接" weakhostreceive=enabled
netsh interface ipv4 set interface "本地连接" weakhostsend=enabled
pause

以上命令保存到txt文档,修改后缀名为bat,即批处理文件。运行即可。

VIP设置:
ip地址设置为vip地址,子网掩码写4个255

完成

2015-03-02
发表者 Venus
Adobe Http Dynamic Streaming的简单配置与实现 (FMS, HLS, HDS)已关闭评论

Adobe Http Dynamic Streaming的简单配置与实现 (FMS, HLS, HDS)

Adobe的Http Dynamic Streaming简称HDS是针对苹果的HLS方案提出基于HTTP的流媒体传输方案,基于其方案说明,它既能支持HTTP也能支持RTMP,既能支持点播(VOD),也支持直播。 因此配了一下此方案,过程如下:

服务器环境:
WindowsServer2008R2,这里没用linux,因为在测试时候linux为云主机,某些系统部分可能因为运营商修改的原因无法使用。

软件环境:
Adobe Media Server5_x64 下载地址:http://download.macromedia.com/pub/adobemediaserver/5_0_7/AdobeMediaServer5_x64.exe
OSMF Simple Player For Http Dynamic Streaming 下载地址: http://www.osmf.org/downloads/OSFMPlayer_zeri2.zip   最好用迅雷云加速下载

说一下,在adobe中流媒体版本5之前,比如4.5,名字叫FMS,在版本5之后叫AMS

安装配置过程:

1)安装AMS5,根据提示,基本都是下一步。安装自带的apache,端口部分默认。

创建一个管理用户并记住密码 这个地方需要注意记住设置的账户和密码

直至完成

2) 下载安装OSMF Simple Player,将下载到的Player解压并放到:C:\Program Files\Adobe\Adobe Media Server 5\webroot\OSFMPlayer 目录中

3) 配置:

3.1) 默认情况下,FMS4.5监听80端口接收traffic然后传递给Apache的8134端口(FMS自带的Apache被配成了监听8134端口),这个传递过程在高网络负载下会带来性能的问题。因此,做以下配置来解决这个问题。

修改 安装目录\conf\fms.ini, 将其中的ADAPTOR.HOSTPORT = :1935,80一行,改为ADAPTOR.HOSTPORT = :1935 不让FMS监听80端口;

同时,将其中 HTTPPROXY.HOST = :8134 一行,改为: HTTPPROXY.HOST =

这样便去掉了以上的代理转发过程。(在FMS4.5中需要修改,AMS5中已经为这样了)

3.2) 安装目录\Apache2.2\conf\httpd.conf文件中的 Listen 8134 一行改为80 (在FMS4.5中需要修改,AMS5中已经为监听80端口)

3.3) HTTP Origin Module 不用配置,FMS4.5和AMS5版本自带安装的Apache都已经配置好了这些支持Http Dynamic Streaming的模块,主要用于点播和直播时下发流媒体数据到观看端;

3.4) 找一个装有摄像头的电脑用于直播视频编码端,安装Flash Media Live Encoder 3.2 :

修改 Encoder 安装目录\Conf下面的config.xml文件,修改红色部分, 把”false” 改为 “true”

<streamsynchronization>
<!– “true” to enable this feature, “false” to disable. –>
<enable>true</enable>
<!– A Past UTC reference time. –>
<!– Past reference time should not be earlier than 30 days from the –>
<!– time when encoding is started. –>
<!– If invalid reference time is provided, current month is taken as –>
<!– reference time. –>
<referencetime>
<!– A past/current month. –>
<!– 1 for January, 2 for February and so on. –>
<!– 0 means use current month. –>
<month>0</month>
<!– A past/current year. –>
<!– for Example, 2008,2009 etc. –>
<!– 0 means use current year. –>
<year>0</year>
</referencetime>
</streamsynchronization>

3.5) 配置AMS在直播时使用绝对时间:
打开C:\Program Files\Adobe\Adobe Media Server 5\applications\livepkgr\Application.xml
修改 <AssumeAbsoluteTime>true</AssumeAbsoluteTime> 部分改为true

3.6) 修改 C:\Program Files\Adobe\Adobe Media Server 5\conf\Server.xml
<MaxFlushTime>1</MaxFlushTime> 改为1

4) 重启AMS相关服务,并配置为系统账户启动服务。

4.1)验证点播过程就不做了

4.2) 验证直播
启动Flash Media Live Encoder 3.2开始配置参数:

首先是video部分:
preset 部分选择 preset Custom, format 选择 H264, frame rate 选择29.97 ,input size 选择320×240 ,bit rate 部分选择200kbps
output size 为320×240

audio音频部分:
format 选mp3,其它音频部分都默认即可。

最右边有个 stream to flash media server
FMS URL填写:rtmp://42.62.101.177/livepkgr
Stream 写:livestream?adbe-live-event=liveevent

点击connect
点击下面绿色的START开始发布

客户端:

用浏览器打开上面安装的OSMFPlayer地址: http://42.62.101.177/OSFMPlayer/OSMFPlayer.html
在播放器中打开视频流地址:http://42.62.101.177/hds-live/livepkgr/_definst_/liveevent/livestream.f4m

就开始直播了(走http协议)

直播时生成的视频数据文件保存在 安装目录\applications\livepkgr\streams\_definst_\ 目录下
控制文件保存在 安装目录\applications\livepkgr\events\_definst_\liveevent\ 目录下

5)几种文件的作用
*.f4m — Flash Media Manifest file. Contains information about codec, resolution, and the availability of multi-bitrate files.类似于苹果HLS方案中的m3u8,是mainfest索引文件,里面包括编码,分辨率码率等

*.f4x — Index file. Contains the location of specific fragments within a stream.

*.f4f — A segment. The tool outputs one or more F4F files. Each file contains a segment of the source file. Each segment contains one or more fragments of content. A player can use a URL to address each fragment.

注意:以上配置的是http dynamic streaming — 注意直播时,视频发布者用RTMP协议将视频发布到AMS上,观看者播放器OSMF通过Http协议分段将视频下载下来并播放观看;

基于以上AMS服务器,还有一种配置和实现是采用RTMP进行直播, 也就是说,视频发布者用RTMP协议将视频发布到AMS上, 观看者通过另外一个支持RTMP协议的播放器将视频通过RTMP下载播放。配置如下:

在以上配置的基础上:

1) 将AMS服务器中C:\Program Files\Adobe\Adobe Media Server 5\samples目录下的videoPlayer目录拷贝到
C:\Program Files\Adobe\Adobe Media Server 5\webroot下,这是一个支持RTMP协议播放的Flash播放器,类似于上面的OSMF播放器。

2) 在Flash Media Live Encoder3.2那里的FMS URL那里填上: rtmp://42.62.101.177/live

在下面的stream 那里填上 livestream

3) 观看端用浏览器打开:http://42.62.101.177/videoPlayer/videoPlayer.html, 然后在页面下部的 STREAM URL: 那里输入:

rtmp://42.62.101.177/live/livestream ,并勾选中LIVE,然后点击Play Stream即可观看。

这里观看者用的是RTMP下载方式而不是HTTP下载方式。这就是区别。

感觉通过rtmp观看的延迟要小于hds。

测试完成。

PS:

关于adobe flash media live encoder 视频编码中推送视频流到FMS的经验收获

hds播放需要支持hds协议的播放器,hls播放需要苹果设备,直接在Safari打开即可。

在encoder编码推送时的配置:
FMS URL: rtmp://42.62.101.177/livepkgr/virtual
                通信协议/服务器IP地址/livepkgr/视频目录

视频目录如果不存在会自动创建

Stream:222?adbe-live-event=liveevent
222为视频文件名称

通过hds访问的时候地址为:
http://42.62.101.177/hds-live/livepkgr/virtual/liveevent/222.f4m

通过hls访问的时候地址为:
http://42.62.101.177/hls-live/livepkgr/virtual/liveevent/222.m3u8

如果推送视频时候不设置目录,默认为:
rtmp://42.62.101.177/livepkgr/_definst_
对应物理目录为:
C:\Program Files\Adobe\Adobe Media Server 5\applications\livepkgr\streams\_definst_