Category: Linux


How To Install RED5 Server on Centos 5.3

In this how to i will describe how to install RED5 server on Centos 5.3. This how to can be used to install RED5 server on Centos 4 and Fedora 8 – 11 as well. RED5 is open source flash server written in java supports streaming audio/video, recording client streams, shared objects, live stream publishing etc.

1) Download and Install Java

RED5 server depends on Java. CentOS 5.3 comes with OpenJDK 1.6 and install it using yum.

yum -y install java-1.6.0-openjdk java-1.6.0-openjdk-devel

2) Download and Install Ant & Ivy (Apache Project)

Ant will need to compile RED5 server code. Ant comes in binary form, so just download and install it in /usr/local directory.

cd /usr/src

wget http://mirrors.isu.net.sa/pub/apache//ant/binaries/apache-ant-1.8.2-bin.tar.bz2

tar jxvf apache-ant-1.8.2-bin.tar.bz2

mv apache-ant-1.8.2 /usr/local/ant

cd /usr/src

svn co https://svn.apache.org/repos/asf/ant/ivy/core/trunk ivy

cd ivy

ant jar

cp build/artifact/jars/ivy.jar /usr/local/ant/lib/

3) Export Variables for Ant and Java

export ANT_HOME=/usr/local/ant

export JAVA_HOME=/usr/lib/jvm/java

export PATH=$PATH:/usr/local/ant/bin

Also export these variables in /etc/bashrc to become available for every user login or for any terminal opens.

echo ‘export ANT_HOME=/usr/local/ant’ >> /etc/bashrc

echo ‘export JAVA_HOME=/usr/lib/jvm/java’ >> /etc/bashrc

echo ‘export PATH=$PATH:/usr/local/ant/bin’ >> /etc/bashrc

4) Download and Install RED5 Server

Here the latest version available for RED5 is 0.7 on site but download from google code using svn as the tarball of 0.7 on site is missing some of the files.

cd /usr/src

svn checkout http://red5.googlecode.com/svn/java/server/trunk/ red5

mv red5 /usr/local/

cd /usr/local/red5

ant prepare

ant dist

you will see a ton of lines, but you should get at last

BUILD SUCCESSFUL

that’s mean its install and now copy the conf directory from dist/ and test the red5 installation.

cp -r dist/conf .

./red5.sh

If it shows Installer service created in the last then everything is fine here, press ctrl+c and move to next step to create init script.

5) Init Script

Now we will create init script for red5 to start, stop and restart easily.

vi /etc/init.d/red5

download http://www.sohailriaz.com/downloads/red5.txt and copy / paste code in it. The init script code also be viewed below.

#!/bin/sh

# For RedHat and cousins:

# chkconfig: 2345 85 85

# description: Red5 flash streaming server

# processname: red5

PROG=red5

RED5_HOME=/usr/local/red5

DAEMON=$RED5_HOME/$PROG.sh

PIDFILE=/var/run/$PROG.pid

# Source function library

. /etc/rc.d/init.d/functions

[ -r /etc/sysconfig/red5 ] && . /etc/sysconfig/red5

RETVAL=0

case “$1″ in

start)

echo -n $”Starting $PROG: ”

cd $RED5_HOME

$DAEMON >/dev/null 2>/dev/null &

RETVAL=$?

if [ $RETVAL -eq 0 ]; then

echo $! > $PIDFILE

touch /var/lock/subsys/$PROG

fi

[ $RETVAL -eq 0 ] && success $”$PROG startup” || failure $”$PROG startup”

echo

;;

stop)

echo -n $”Shutting down $PROG: ”

killproc -p $PIDFILE

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$PROG

;;

restart)

$0 stop

$0 start

;;

status)

status $PROG -p $PIDFILE

RETVAL=$?

;;

*)

echo $”Usage: $0 {start|stop|restart|status}”

RETVAL=1

esac

exit $RETVAL

Enable executable permission

chmod +x /etc/init.d/red5

Now start the service

/etc/init.d/red5 start

check status

/etc/init.d/red5 status

red5 (pid  XXXXX) is running…

again you can do stop, restart.

6) Test

Now test the RED5 installation by opening following URL in browser

http://yourip:5080/

you will see red5 page like this

red5_11

and demos can be find here.

http://yourip:5080/demos/

red5_21

You can use simple port tester tool that determines which ports the Flash Player is able to connect through to the Red5 server. Put your server address or IP in HOST when using port tester. You should get SUCCESS on RTMP or port 1935. If not please check your firewall.

http://yourip:5080/demos/port_tester.html

red5_3

7) ISSUE

When you run ./red5.sh, it will show you Installer service created. Thats mean everything runs fine and red5 server is up. But if you went to port_tester.swf using demos above or your application shows connections FAILS, this is an issue of RTMPT and RTMPTS. You can see it by running

/usr/local/red5/red5.sh

output trancated

[INFO] [main] org.red5.server.tomcat.TomcatLoader – RTMPT server bean was not found

[INFO] [main] org.red5.server.tomcat.TomcatLoader – RTMPS server bean was not found

output truncated

If you see this you have to uncomment the RTMPT and RTMPTS TomcatLoader in/usr/local/red5/conf/red5-core.xml

vi /usr/local/red5/conf/red5-core.xml

Search for a lines

<!– RTMPT –>

<!–

<bean id=”rtmpt.server” class=”org.red5.server.net.rtmpt.TomcatRTMPTLoader” init-method=”init” lazy-init=”true”>

Remove the <!– from start of <bean and –> from end of </bean>

Same goes for RTMPS

<!– RTMPS –>

<!–

<bean id=”rtmps.server” class=”org.red5.server.net.rtmps.TomcatRTMPSLoader” init-method=”init” lazy-init=”true”>

Remove the <!– from start of <bean and –> from end of </bean>

Restart the red5 services and connection fails problem will be fixed.

If you any question please use comments.

pixelstats trackingpixel

moosefs: a distributed file system (bài 1)

Giới thiệu

Trong các bài trước (blog) MogileFS và (blog) CloudStore (former Kosmos), ta có dịp làm quen với hai hệ thống tập tin phân tán không tương thích với chuẩn POSIX; chúng không được sử dụng trực tiếp như các ổ đĩa thông thường, mà phải thông qua các thư viện và giao diện lập trình. Như thế, hai hệ thống KFS và MogileFS đều khó có thể dùng để giải quyết bài toán chia sẻ dữ liệu giữa các máy Linux.

Để chia sẻ, bạn có thể nghĩ ngay tới NFS. Tuy nhiên, NFS không có tính phân tán, chỉ thích hợp với quy mô dữ liệu nhỏ. Tại sao như vậy? Có trường hợp là nhiều máy cùng chia sẻ một thư mục ABC, nếu máy phục vụ của dịch vụ NFS có vấn đề (bị tắt, hoặc hệ thống tập tin trên máy phục vụ bị hỏng), thì có thể dẫn tới toàn bộ hệ thống dữ liệu dùng chung bị mất. Để khắc phục, có thể đầu tư hệ thống ổ cứng tốt (các dãy RAID chẳng hạn) để dùng với NFS. Tuy nhiên, chi phí hiển nhiên là quá lớn. Và việc trông chờ tất cả vào một chỗ lưu trữ thường ẩn chứa nhiều nguy cơ: đây cũng là đặc điểm chung của các hệ không phân tán.

Như đã, nói KFS và MogileFS không thích hợp để thay thế cho NFS, vì chúng không theo chuẩn POSIX. Có hệ DFS nào khác không? Có ít nhất ba câu trả lời: MooseFS (được đội phát triển của họ ghi tắt là MFS), GlusterFS và LustreFS. LustreFS thì quá siêu rồi, nó được thiết kết để dùng trong các siêu máy tính: 15 trong số 30 siêu máy tính trên thế giới sử dụng LustreFS. Việc thử nghiệm LustreFS cũng đòi hỏi rất nhiều cố gắng để vá nhân Linux. Cho nên, các bài tới đây ta chỉ đề đề cập tới hai chàng DFS bình dân: MFS và GlusterFS. Ta sẽ mô tả kiến trúc, cách cài đặt và sau đó sẽ nêu một số nhận xét có ích.

Kiến trúc

Về kiến trúc thì KFS và MFS có nhiều điềm giống nhau. Hệ thống MFS gồm có

  1. Một (meta)master
  2. Một hoặc nhiều logger
  3. Một hoặc nhiều chunk
  4. Các client (kết nối với master nhờ fuse module)

Master đóng vai trò nhạc trưởng, là trái tim của hệ thống MFS. Nó được triển khai trên một máy chạy thật bền (ổ cứng RAID, uptime 100%), nhưng cấu hình không cần quá mạnh; điều đặc biệt là cấu hình của nó không phụ thuộc vào dung lượng lưu trữ, mà phụ thuộc vào số lượng tập tin có trong toàn bộ hệ thống. Càng nhiều tập tin, càng nhiều RAM và CPU để làm việc cho nhanh. Mastersẽ không lưu trữ các tập tin, mà nó có nhiệm vụ băm, phân mảnh,… và ghi thông tin của các tập tin cùng với thông tin về các chunk (nói sau). Ví dụ, khi client gửi yêu cầu ghi một tập tin A,master sẽ nhận chỉ thị này, sau đó nó tìm kiếm xem còn chunk nào thích hợp, và chuyển vị ghi nội dung tập tin lên chunk đó.

client gửi yêu cầu đến master: tôi cần ghi nội dung A. Hãy giúp!
master gửi yêu cầu đến các chunk: anh còn sống chứ?
  master thu thập các trả lời từ các chunk
    chunk X: vâng, tôi còn sống
    chunk Y: vâng, tôi còn sống
    chunk Z: ồ, tôi còn sống nhưng bị ốm, xin đừng ghi vào tôi
master trả lời client: ok, anh hãy bắt đầu ghi vào chunk X, chunk Y
client liên lạc với các chunk X, Y để lưu nội dung
các chunk X,Y liên lạc với master để báo cáo việc lưu nội dung
master ghi lưu trữ thông tin về tập tin A
client cảm ơn và tạm biệt master và các chunk

Logger làm một kẻ làm việc thầm lặng :) Nó cũng cần cấu hình mạnh và bền bỉ như master, nhưng công việc của nó phần lớn là nhẹ nhàng: đều đặn kết nối với master và tạo một bản sao lưu thông tin về hệ thống tập tin. Khi có sự cố trên masterlogger có thể dùng để đóng thế. Thời gian hệ thống bị ngưng là cần thiết, cho việc phục hồi dữ liệu từ các thông tin mà logger đang có. Vì vai trò của mình, logger không bao giờ được thiết lập ở chung một máy với master.

Chunk là nơi mà dữ liệu thật sự lưu trữ. Trên chunk, tập tin không được lưu thành cách thông thường, mà được băm ra từng khối 64KiB để lưu trên các tập tin chunk có kích thước cố định 64MiB. Các con số này là cố định, không thể thay đổi được trừ khi bạn viết lại mã nguồn của MooseFS:

  tập tin A mà bạn biết
        ======...
           |
    ______/|\______
   /       |       \
   |       |       |
   V       V       v
chunkA  chunkB   chunkC
======  ======   ======

Như vậy, việc lưu một tập tin trên các chunk giống như việc đổ một thùng bia 10 lít vào từng lon bia nửa lít: kết cục ta sẽ có 20 lon bia đóng thành một két, dễ dàng cho việc vận chuyển và… thưởng thức ;)

Cuối cùng, các client sẽ thông qua mô-đun fuse của nhân Linux để kết nối hệ thống tập tin, thành một ổ cứng trên hệ thống như bao ổ cứng khác, với đầy đủ các phân quyền đọc ghi theo người dùng, nhóm (chuẩn POSIX). Như đã nói ở trên, client có kết nối tới cả master và các chunk. Điều này cần chú ý khi thiết lập tường lửa cho hệ thống.

Định nghĩa DFS:

DFS (Distributed File System) là hệ thống tổ chức sắp xếp các thư mục, tập tin dùng chung trên mạng mà Server quản lý, ở đó bạn có thể tập hợp các thư mục dùng chung nằm trên nhiều Server khác nhau trên mạng với một tên chia sẻ duy nhất. Nhờ hệ thống này mà người dùng dễ dàng tìm kiếm một tài nguyên dùng chung nào đó trên mạng… DFS có hai loại root:

Domain root là hệ thống root gắn kết vào Active Directory được chứa trên tất cả Domain Controller

Stand-alone root chỉ chứa thông tin ngay tại máy được cấu hình. Chú ý DFS không phải là một File Server mà nó là chỉ là một “bảng mục lục” chỉ đến các thư mục đã được tạo và chia sẻ sẵn trên các Server. Để triển khai một hệ thống DFS trước tiên bạn phải hiểu các khái niệm sau:

Gốc DFS (DFS root) là một thư mục chia sẻ đại diện cho chung cho các thư mục chia sẻ khác trên các Server.

Liên kết DFS (DFS link) là một thư mục nằm trong DFS root, nó ánh xạ đến một tài nguyên chia sẻ các Server khác.

Sưu tầm http://dragula.org/blogs/611

Powered by WordPress | Theme: by 85ideas. Editor by Khoanguyen