亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3817 | 回復: 8
打印 上一主題 下一主題

我寫的跨機器的管道工具qpipe [復制鏈接]

論壇徽章:
3
數據庫技術版塊每日發(fā)帖之星
日期:2015-06-18 22:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-06-21 22:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-08-27 06:20:00
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-03-15 21:23 |只看該作者 |倒序瀏覽
qpipe是我寫的一個在Unix機器上通過管道可靠傳數據的工具。此工具開發(fā)的初衷是為了在生產中心和容災中心傳ZFS文件系統(tǒng)快照來使用了。我開始使用ssh來做管道來傳ZFS快照,但當網絡不好時容易hang,同時發(fā)現ssh帶寬在千兆網上只能到達50MBbytes/s,就再不高不上去了,同時還很占用CPU。我寫的這個工具有以下幾個功能:

1. 當網絡不穩(wěn)定,TCP連接斷了后,可以重連。

2. 相比ssh,占用CPU低。

3.有壓縮功能,為了提高壓縮速度,可以使用多線程壓縮,線程數可以由參數指定。

在Solaris平臺上已使用了很長一段時間,運行一直穩(wěn)定。

下面介紹使用方法:

此工具分服務端和客戶端,而程序只有這一個,當指定不同的參數時,程序會以服務端運行或以客戶端模式運行。

在服務器端,運行qpipe服務:

nohup ./qpipe -p 4000 -n 192.168.1.0/24 -n 192.168.2.0 >qpipe.log 2>&1 &

-n 參數指定允許訪問的客戶端IP的網絡范圍,可以設置多個。

在客戶端上:

如果想把文件t.dat傳送到服務端機器的/tmp目錄下,客戶端的命令如下:

cat t.dat | ./qpipe -s 192.168.1.1 -p 4000 -c "cat >/tmp/t.dat"



osdba@odlt:~/tmp/osdba-qpipe-24a0aea$ cat t.dat | ./qpipe -s 192.168.1.1 -p 4000 -c "cat >/tmp/t.dat"

2012-03-15 21:01:29 : INFO  : Client id : 1

====Total read bytes : 10485760, send bytes : 45793, rate of compression : 0%, time : 0.24 s

其中 -s指定了服務器的IP地址,-p指定了端口。-c 指定了在服務端接收數據的程序。上面的命令就如同在本機上執(zhí)行:
cat t.dat |cat >/tmp/t.dat命令,只不過通過qpipe完成了跨機器的功能。


下面演示如何傳送ZFS快照:

[root@host01/]#zfs list
NAME                                USED  AVAIL  REFER  MOUNTPOINT
storagepool                         804G   422G   730G  /storagepool
storagepool/tangtest               60.6G   422G  59.6G  /storagepool/tangtest

我們要把/storagepool/tangtest文件系統(tǒng)傳送到host02上去。傳送zfs快照需要先建一個快照:
[root@host01 /]#zfs snapshot storagepool/tangtest@snap01
[root@host01 /]#zfs list
NAME                          USED  AVAIL  REFER  MOUNTPOINT
storagepool                   803G   423G   730G  /storagepool
storagepool/tangtest         59.6G   423G  59.6G  /storagepool/tangtest
storagepool/tangtest@snap01      0      -  59.6G  -
這時可以看到快照storagepool/tangtest@snap01建好了,我們把這個快照傳到host02上。
先把host02上把啟動qpipe服務器:
[root@host02 ]#nohup ./qpipe -n 192.168.128..0/24 -n 192.168.129.0/24 -p 5000 >qpipe.log 2>&1 &
[1] 35

然后在host01上運行如下命令:
[root@host01]#zfs send storagepool/tangtest@snap01 |./qpipe -s 192.168.129.2 -p 5000 -c "zfs recv storagepool/tangtest"
2012-03-15 21:10:55 : INFO  : Client id : 1
----read speed: 187016797/s, send speed: 755235/s, rate of compression : 0%
----read speed: 146371897/s, send speed: 653566/s, rate of compression : 0%
....
....

等命令執(zhí)行完后,到host02上可以看到文件系統(tǒng)storagepool/tangtest傳過來了:
[root@inc-dba-gp-129-148 /storagepool/qpipe]#zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
storagepool              30.2G  1.17T  2.68G  /storagepool
storagepool/tangtest         59.6G   423G  59.6G  /storagepool/tangtest
storagepool/tangtest@snap01      0      -  59.6G  -

默認命令中是開啟壓縮的,使用zlib壓縮級別2,可以通過-z參數指定壓縮率,如果-z 0則關閉壓縮。
默認是使用4個線程做壓縮的,可以通過-t 參數指定壓縮線程數。

qpipe的其它參數見幫助:
[host01]#./qpipe -h
Usage:   qpipe [OPTION]
read data from stdin, and send to a command in remove server.

  -s <server_ip>
       in client mode, specify the server IP
  -p <port>
       in client mode, specify the server ip port,
       in server mode, specify the server listen port
  -c <cmd>
       only can be used in client mode, specify the command run in server
  -z <0-9>
       specified compression level, between 0 and 9: 1 gives best speed, 9 gives best compression, 0 gives no compression at all
  -t <1-nn>
       specified number of concurrent compress threads, default is 4
  -b <blocksize>
       specified block size, default is 4M
  -l <loglevel>
       loglevel, default loglevel is 3, 3 is 1(ERR_LOG)+2(INFO_LOG)
                 ERR_LOG: 1, INFO_LOG: 2, STAT_LOG: 4, DEBUG0_LOG: 8, DEBUG1_LOG: 16
  -w <wait_seconds>
       specified time of server wait client reconnect, default is 300 seconds
       when beyond it ,then server close this session
  -n <allow_ip_or_network>
       only can be used in server mode, specify the  specified client ipaddress or network can connect to server
  -k <socket_buffer_size>
       specified size of socket buffer,default is 1M
  -h
       help
Example:
   qpipe -p 5000 -n 172.16.196.0/24
       This command start server in 5000 port.
       If you only specify a port option, program run in server mode, and listen on this port.
   cat t.dat |qpipe -s 192.168.1.200 -p 5000 -c "cat >t2.dat"
       This command send file t.dat to 192.168.1.200

論壇徽章:
49
15-16賽季CBA聯(lián)賽之福建
日期:2016-06-22 16:22:002015年亞洲杯之中國
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36雙魚座
日期:2015-01-02 22:04:33午馬
日期:2014-11-25 09:58:35辰龍
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龍
日期:2014-08-21 10:47:58
2 [報告]
發(fā)表于 2012-03-15 22:41 |只看該作者
osdba 發(fā)表于 2012-03-15 21:23
qpipe是我寫的一個在Unix機器上通過管道可靠傳數據的工具。此工具開發(fā)的初衷是為了在生產中心和容災中心傳Z ...


兄弟,工具呢,能共享給大家么?

論壇徽章:
1
天蝎座
日期:2013-12-06 18:23:58
3 [報告]
發(fā)表于 2012-03-15 23:31 |只看該作者
看起來很高端的樣子啊~~ 共享一下吧~~

論壇徽章:
0
4 [報告]
發(fā)表于 2012-03-16 16:55 |只看該作者
兄弟,        碼呢???

論壇徽章:
3
數據庫技術版塊每日發(fā)帖之星
日期:2015-06-18 22:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-06-21 22:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-08-27 06:20:00
5 [報告]
發(fā)表于 2012-03-17 22:16 |只看該作者
大家可以到此下載源代碼:https://github.com/osdba/qpipe,下載后直接make就可以生成qpipe可執(zhí)行文件了。

論壇徽章:
3
數據庫技術版塊每日發(fā)帖之星
日期:2015-06-18 22:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-06-21 22:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-08-27 06:20:00
6 [報告]
發(fā)表于 2012-03-17 22:17 |只看該作者
把源代碼也放到附件中吧,方便大家下載。

osdba-qpipe.zip

17.35 KB, 下載次數: 16

論壇徽章:
3
數據庫技術版塊每日發(fā)帖之星
日期:2015-06-18 22:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-06-21 22:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-08-27 06:20:00
7 [報告]
發(fā)表于 2012-03-18 19:35 |只看該作者
對多線程和socket編程感興趣的,也可以看看這個程序的源代碼。

論壇徽章:
3
數據庫技術版塊每日發(fā)帖之星
日期:2015-06-18 22:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-06-21 22:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-08-27 06:20:00
8 [報告]
發(fā)表于 2012-03-20 12:12 |只看該作者
自己頂一下。

論壇徽章:
0
9 [報告]
發(fā)表于 2012-03-21 10:02 |只看該作者
不錯,頂一下
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP