原创 RCU鎖機制原理解析

背景 爲了保護共享數據,需要一些同步機制,如自旋鎖(spinlock),讀寫鎖(rwlock),它們使用起來非常簡單,而且是一種很有效的同步機制,在UNIX系統和Linux系統中得到了廣泛的使用。但是隨着計算機硬件的快速發展,獲得

原创 git更新代碼及相關操作

git更新代碼 克隆自己倉庫的代碼 如果已經克隆則增加遠程原始主庫分支到本地 倉庫地址: git remote add raid_master [email protected] git remote add xxx_master ss

原创 daemon 守護進程

什麼是守護進程? 守護進程(Daemon Process),也就是通常說的 Daemon 進程(精靈進程),是 Linux 中的後臺服務進程。它是一個生存期較長的進程,通常獨立於控制終端並且週期性地執行某種任務或等待處理某些發生

原创 Linux修改進程能打開最大文件數(Could not set limit for ‘nofile’: Operation not permitted)

/proc/sys/fs/file-max –系統級別所有進程可打開的文件數 /proc/sys/fs/nr_open –定義了file-max允許被修改的最大值,file-max不可以超過該值 ( ***爲自己設置的文件數) a)   

原创 centos7下sheepdog環境的搭建

注意事項: 在開始安裝sheepdog之前,應該先安裝如下內容 yum install -y make automake autoconf gcc nss-devel wget git glib2 yum isntall -y libto

原创 Python lambda介紹

在學習python的過程中,lambda的語法時常會使人感到困惑,lambda是什麼,爲什麼要使用lambda,是不是必須使用lambda?   下面就上面的問題進行一下解答。   1、lambda是什麼?     看個例子:  

原创 strtol,strtoll,strtoul, strtoull字符串轉化成數字

名字: strtol, strtoll, strtoul, strtoull convert a string to a (signed, unsigned ) long integer string 聲明: #include<

原创 各類分佈式存儲系統簡介

分佈式文件系統原理 本地文件系統如ext3,reiserfs等(這裏不討論基於內存的文件系統),它們管理本地的磁盤存儲資源、提供文件到存儲位置的映射,並抽象出一套文件訪問接口供用戶使用。但隨着互聯網企業的高速發展,這些企業對數據存儲的

原创 centos7下sheepdog的簡單使用

1.啓動corosync、sheepdog /bin/systemctl start corosync.service /bin/systemctl start sheepdog.service 2.啓動sheep sheep /stor

原创 共享內存 shmget()、shmat()、shmdt()、shmctl()

下面將講解進程間通信的另一種方式,使用共享內存。 一、什麼是共享內存 顧名思義,共享內存就是允許兩個不相關的進程訪問同一個邏輯內存。共享內存是在兩個正在運行的進程之間共享和傳遞數據的一種非常有效的方式。不同進程之間共享的內存通常

原创 (Python)異常處理try...except、raise

一、try...except 有時候我們寫程序的時候,會出現一些錯誤或異常,導致程序終止。例如,做除法時,除數爲0,會引起一個ZeroDivisionError 例子: 1 2 3 4 a=

原创 epoll機制:epoll_create、epoll_ctl、epoll_wait、close

在linux的網絡編程中,很長的時間都在使用select來做事件觸發。在linux新的內核中,有了一種替換它的機制,就是epoll。相比於select,epoll最大的好處在於它不會隨着監聽fd數目的增長而降低效率。因爲在內核中的sel

原创 Centos7.4安裝編譯nbd模塊錯誤(modprobe: FATAL: Module nbd not found.)

查看centos版本 cat /etc/redhat-release #-> CentOS Linux release 7.4.1708 (Core) 查看自己內核版本 uname -r       #-> 3.10.0-693.el7.

原创 分佈式系統sheepdog整體框架分析

特點: 採用無中心節點的全對稱架構,不用元數據服務器,無單點故障,存儲容量和性能可線性擴展; 新增節點通過簡單配置可自動加入,數據自動實現負載均衡; 節點故障時,數據可自動恢復;   由corosync完成集羣成員管理和有關集羣消息傳遞

原创 分佈式系統sheepdog之dog執行流程

dog部分主要是執行客戶端的命令行請求,然後對命令進行解析,通過指定socket發送請求到sheep端,將請求交sheep端處理。具體流程請參考下圖。 1、init_commands(&commands)函數將dog支持的命令都初始化在