diff --git a/_scripts/install.sh b/_scripts/install.sh
index 62455fec..8484ada9 100755
--- a/_scripts/install.sh
+++ b/_scripts/install.sh
@@ -120,6 +120,9 @@ function install_k3s_server {
   configure_mirrors
   install_cin_plugins
   INSTALL_K3S_EXEC="server ${INSTALL_K3S_EXEC} --flannel-backend=none --disable=traefik --disable=local-storage --disable=servicelb --cluster-cidr=10.233.0.0/16"
+  if [[ -n "${K3S_DATA_DIR}" ]] ; then
+    INSTALL_K3S_EXEC="$INSTALL_K3S_EXEC --data-dir=${K3S_DATA_DIR}/rancher/k3s"
+  fi
   if [[ -z "${K3S_URL}" ]] ; then
     INSTALL_K3S_EXEC="$INSTALL_K3S_EXEC --cluster-init"
   fi
@@ -130,6 +133,9 @@ function install_k3s_agent {
   configure_os
   configure_mirrors
   install_cin_plugins
+  if [[ -n "${K3S_DATA_DIR}" ]] ; then
+    INSTALL_K3S_EXEC="$INSTALL_K3S_EXEC --data-dir=${K3S_DATA_DIR}/rancher/k3s"
+  fi
   curl -sfL "${k3s_install_url}" |INSTALL_K3S_EXEC="$INSTALL_K3S_EXEC" sh -s -
 }
 
@@ -158,9 +164,13 @@ EOF
 }
 
 function install_longhorn {
+  if [[ -n "${LONGHORN_DATA_PATH}" ]] ; then
+    LONGHORN_DATA_PATH="${LONGHORN_DATA_PATH}/longhorn"
+  fi
   helm install longhorn drycc/longhorn --create-namespace \
     --set persistence.defaultClass=true \
     --set persistence.defaultClassReplicaCount=1 \
+    --set defaultSettings.defaultDataPath=${LONGHORN_DATA_PATH:-""} \
     --namespace longhorn-system --wait
 }
 
@@ -173,7 +183,7 @@ function check_drycc_env {
     echo -e "\\033[31m---> For example, the current server IP is 8.8.8.8\\033[0m"
     echo -e "\\033[31m---> Please point *.drycc.cc to 8.8.8.8\\033[0m"
     exit 1
-  fi	
+  fi
 
   if [[ -z "${DRYCC_ADMIN_USERNAME}" || -z "${DRYCC_ADMIN_PASSWORD}" ]] ; then
     echo -e "\\033[31m---> Please set the DRYCC_ADMIN_USERNAME and DRYCC_ADMIN_PASSWORD variable.\\033[0m"
diff --git a/_scripts/uninstall.sh b/_scripts/uninstall.sh
index edd8d91a..63ad13ec 100755
--- a/_scripts/uninstall.sh
+++ b/_scripts/uninstall.sh
@@ -5,6 +5,14 @@ shopt -s expand_aliases
 /usr/local/bin/k3s-killall.sh
 /usr/local/bin/k3s-uninstall.sh
 
+if [[ -n "${K3S_DATA_DIR}" ]] ; then
+    rm -rf  "${K3S_DATA_DIR}/rancher"
+fi
+
+if [[ -n "${LONGHORN_DATA_PATH}" ]] ; then
+    rm -rf  "${LONGHORN_DATA_PATH}/longhorn"
+fi
+
 rm -rf /etc/rancher
 rm -rf /var/lib/longhorn
 rm -rf /usr/local/bin/helm ~/.config/helm
diff --git a/src/quickstart/install-workflow.md b/src/quickstart/install-workflow.md
index f4009efc..c91cc3db 100644
--- a/src/quickstart/install-workflow.md
+++ b/src/quickstart/install-workflow.md
@@ -124,7 +124,7 @@ $ export PLATFORM_DOMAIN=59.46.3.190.nip.io
 
 ## Install
 
-Before installation, please make sure whether your installation environment is a public network. 
+Before installation, please make sure whether your installation environment is a public network.
 If it is an intranet environment and there is no public IP, you need to disable the automatic certificate.
 
 ```
@@ -146,7 +146,7 @@ $ curl -sfL https://drycc.cc/install.sh | bash -
 
 ### Install Node
 
-Node can be a simple agent or a server; Server has the function of agent. Multiple servers have high availability, but the number of servers should not 
+Node can be a simple agent or a server; Server has the function of agent. Multiple servers have high availability, but the number of servers should not
 exceed 7 at most. There is no limit to the number of agents.
 
 * First, check the cluster token of the master.
@@ -210,9 +210,11 @@ RABBITMQ_PERSISTENCE_SIZE                  | The size of the persistence space a
 RABBITMQ_PERSISTENCE_STORAGE_CLASS         | StorangeClass of `rabbitmq`; default storangeclass is used by default
 HELMBROKER_PERSISTENCE_SIZE                | The size of the persistence space allocated to `helmbroker`, which is `5Gi` by default
 HELMBROKER_PERSISTENCE_STORAGE_CLASS       | StorangeClass of `helmbroker`; default storangeclass is used by default
+K3S_DATA_DIR                               | The config of k3s data dir； If not set, the default path is used
+LONGHORN_DATA_PATH                         | The defaultDataPath of longhorn； If not set, the default path is used
 
 Since the installation script will install k3s, other environment variables can refer to k3s installation [environment variables](https://rancher.com/docs/k3s/latest/en/installation/install-options/).
-    
+
 ## Uninstall
 
 If you installed drycc using an installation script, you can uninstall the entire drycc using this script.
