Skip to content

Commit

Permalink
add docker file; restart recover (#156)
Browse files Browse the repository at this point in the history
  • Loading branch information
luanshaotong authored Jul 17, 2023
1 parent d643d52 commit 2dcac05
Show file tree
Hide file tree
Showing 18 changed files with 809 additions and 215 deletions.
11 changes: 11 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,14 @@ build:

test:
cargo test --features=$(features)

images: manager-image server-image client-image

manager-image:
docker build -t manager -f docker/manager/Dockerfile . --no-cache

server-image:
docker build -t server -f docker/server/Dockerfile .

client-image:
docker build -t client -f docker/client/Dockerfile .
10 changes: 10 additions & 0 deletions docker/client/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM debian:bullseye-20221205

RUN apt update && apt upgrade -y && apt-mark unhold libcap2 && \
apt install -y libfuse3-3 libfuse2 libibverbs1 && \
apt clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

COPY target/debug/client /usr/local/bin/client

ENTRYPOINT ["/usr/local/bin/client"]
10 changes: 10 additions & 0 deletions docker/manager/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM debian:bullseye-20221205

RUN apt update && apt upgrade -y && apt-mark unhold libcap2 && \
apt install -y libfuse3-3 libfuse2 libibverbs1 && \
apt clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

COPY target/debug/manager /usr/local/bin/manager

ENTRYPOINT ["/usr/local/bin/manager"]
10 changes: 10 additions & 0 deletions docker/server/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM debian:bullseye-20221205

RUN apt update && apt upgrade -y && apt-mark unhold libcap2 && \
apt install -y libfuse3-3 libfuse2 libibverbs1 && \
apt clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

COPY target/debug/server /usr/local/bin/server

ENTRYPOINT ["/usr/local/bin/server"]
4 changes: 0 additions & 4 deletions examples/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,5 @@ all_servers_address:
- 127.0.0.1:8089
virtual_nodes:
100
heartbeat:
false
log_level:
warn
protect_threshold:
0.5
3 changes: 1 addition & 2 deletions scripts/test_run_all.sh
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#!/bin/bash

function finish() {
sudo rm -rf ~/fs
trap 'kill $(jobs -p)' EXIT
exit $1
}
Expand Down Expand Up @@ -51,7 +50,7 @@ done

sleep 3

./target/debug/client --log-level $log_level create test1 100000
./target/debug/client --log-level $log_level create-volume test1 100000

./target/debug/client --log-level $log_level daemon&
sleep 3
Expand Down
10 changes: 0 additions & 10 deletions src/bin/manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,11 @@ struct Args {
#[arg(long)]
address: Option<String>,
#[arg(long)]
protect_threshold: Option<String>,
#[arg(long)]
config_file: Option<String>,
/// To use customized configuration or not. If this flag is used, please provide a config file through --config_file <path>
#[arg(long)]
use_config_file: bool,
#[arg(long)]
heartbeat: Option<bool>,
#[arg(long)]
log_level: Option<String>,
#[arg(long)]
all_servers_address: Option<Vec<String>>,
Expand All @@ -36,10 +32,8 @@ struct Args {
#[derive(Debug, Serialize, Deserialize)]
struct Properties {
address: String,
protect_threshold: String,
all_servers_address: Vec<String>,
virtual_nodes: usize,
heartbeat: bool,
log_level: String,
}

Expand Down Expand Up @@ -89,16 +83,12 @@ async fn main() -> anyhow::Result<()> {
}
false => Properties {
address: args.address.unwrap_or(default_properties.address),
protect_threshold: args
.protect_threshold
.unwrap_or(default_properties.protect_threshold),
all_servers_address: args
.all_servers_address
.unwrap_or(default_properties.all_servers_address),
virtual_nodes: args
.virtual_nodes
.unwrap_or(default_properties.virtual_nodes),
heartbeat: args.heartbeat.unwrap_or(default_properties.heartbeat),
log_level: args.log_level.unwrap_or(default_properties.log_level),
},
};
Expand Down
18 changes: 17 additions & 1 deletion src/client/fuse_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use crate::common::hash_ring::HashRing;
use crate::common::serialization::{
ClusterStatus, CreateDirSendMetaData, CreateFileSendMetaData, DeleteDirSendMetaData,
DeleteFileSendMetaData, FileAttrSimple, OpenFileSendMetaData, OperationType,
ReadDirSendMetaData, ReadFileSendMetaData, WriteFileSendMetaData,
ReadDirSendMetaData, ReadFileSendMetaData, Volume, WriteFileSendMetaData,
};
use crate::common::{errors, sender};
use crate::rpc;
Expand Down Expand Up @@ -213,6 +213,16 @@ impl Client {
.await
}

pub async fn list_volumes(&self) -> Result<Vec<Volume>, i32> {
let mut volumes: Vec<Volume> = Vec::new();

for server_address in self.hash_ring.read().as_ref().unwrap().get_server_lists() {
let mut new_volumes = self.sender.list_volumes(&server_address).await?;
volumes.append(&mut new_volumes);
}
Ok(volumes)
}

pub async fn delete_servers(&self, servers_info: Vec<String>) -> Result<(), i32> {
self.sender
.delete_servers(&self.manager_address.lock().await, servers_info)
Expand Down Expand Up @@ -248,6 +258,12 @@ impl Client {
.await
}

pub async fn delete_volume(&self, name: &str) -> Result<(), i32> {
self.sender
.delete_volume(&self.get_connection_address(name), name)
.await
}

pub async fn lookup_remote(&self, parent: u64, name: OsString, reply: ReplyEntry) {
info!(
"lookup_remote, parent: {}, name: {}",
Expand Down
Loading

0 comments on commit 2dcac05

Please sign in to comment.