{"id":447,"date":"2021-09-17T00:00:00","date_gmt":"2021-09-17T00:00:00","guid":{"rendered":"https:\/\/en.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/"},"modified":"2024-08-20T06:38:36","modified_gmt":"2024-08-20T13:38:36","slug":"get-started-with-juicefs-using-tikv","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/get-started-with-juicefs-using-tikv\/","title":{"rendered":"Getting Started with JuiceFS Using TiKV"},"content":{"rendered":"<p>As a cloud-native distributed storage system, JuiceFS was designed into a plug-in structure at the beginning of its birth to ensure that new technologies can be continuously integrated into the JuiceFS ecosystem. According to your needs, you can flexibly choose two core components, the data storage engine and the metadata engine, according to their needs.<\/p>\n<p>The data storage engine is mainly object storage. It supports almost all public and private cloud object storage services, as well as KV storage, WebDAV, and local disks. The metadata engine supports databases such as Redis, MySQL, PostgreSQL, and SQLite.<\/p>\n<p>The newly released JuiceFS v0.16 officially supports TiKV, a distributed key-value database, which further meets the requirements for elastic scaling in high-performance, large-scale data storage.<\/p>\n<p>In this article, I&#8217;ll share with you how to use JuiceFS and select TiKV as a metadata engine.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"TiKV_a_highly_scalable_KV_database\"><\/span>TiKV, a highly scalable KV database<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>TiKV is a distributed transactional key-value database featuring high scalability, low latency, and ease of use. It easily processes over a trillion rows of data in petabytes.<\/p>\n<p>TiKV supports unlimited horizontal scaling and provides a distributed transaction interface that meets ACID compliance. It also ensures data consistency and high availability of multiple replicas using the Raft protocol.<\/p>\n<div id=\"attachment_17109\" style=\"width: 793px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-17109\" class=\"wp-image-17109 size-full\" src=\"https:\/\/static.pingcap.com\/files\/2021\/09\/22074533\/juicefs-tikv-architecture.png\" alt=\"juicefs-tikv-architecture\" width=\"783\" height=\"371\" srcset=\"https:\/\/static.pingcap.com\/files\/2021\/09\/22074533\/juicefs-tikv-architecture.png 783w, https:\/\/static.pingcap.com\/files\/2021\/09\/22074533\/juicefs-tikv-architecture-300x142.png 300w, https:\/\/static.pingcap.com\/files\/2021\/09\/22074533\/juicefs-tikv-architecture-768x364.png 768w\" sizes=\"auto, (max-width: 783px) 100vw, 783px\" \/><p id=\"caption-attachment-17109\" class=\"wp-caption-text\">TiKV architecture<\/p><\/div>\n<p>TiKV was developed by PingCAP and is a graduated project of the Cloud Native Computing Foundation (CNCF).<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Install_TiKV\"><\/span>Install TiKV<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>PingCAP provides TiUP, a package manager, which can easily install TiKV on Linux or macOS.<\/p>\n<h3>Install TiUP<\/h3>\n<p>This command downloads and installs the appropriate TiUP version to your system.<\/p>\n<pre><code class=\"language-shell\">curl --proto '=https' --tlsv1.2 -sSf https:\/\/tiup-mirrors.pingcap.com\/install.sh | sh\n<\/code><\/pre>\n<p>For the settings to take effect, you can open a new terminal, or manually declare the global environment variable as follows:<\/p>\n<pre><code class=\"language-shell\">source .bash_profile\n<\/code><\/pre>\n<p>Now try to execute the command <code>tiup -v<\/code> and see the version information similar to the following, which means the installation is successful.<\/p>\n<pre><code class=\"language-shell\">tiup -v\n\n1.5.4 tiup\nGo Version: go1.16.6\nGit Ref: v1.5.4\nGitHash: b629670276269cd1518eb28f362a5180135cc985\n<\/code><\/pre>\n<h4>Deploy a TiKV cluster<\/h4>\n<p>For testing purposes, we&#8217;ll use the TiUP <code>playground<\/code> component to install a minimal TiKV test cluster in the local environment.<\/p>\n<pre><code class=\"language-shell\">tiup playground --mode tikv-slim\n<\/code><\/pre>\n<p>After the deployment is successful, the terminal displays a message similar to the following:<\/p>\n<pre><code>PD client endpoints: [127.0.0.1:2379]\nTo view the Prometheus:[ http:\/\/127.0.0.1:9090](http:\/\/127.0.0.1:9090\/)\nTo view the Grafana:[ ](http:\/\/127.0.0.1:3000\/)http:\/\/127.0.0.1:3000\n<\/code><\/pre>\n<p>Among them, <code>&lt;127.0.0.1:2379&gt;<\/code> is the <a href=\"https:\/\/github.com\/tikv\/pd\">Placement Driver<\/a> (PD) address, which manages and schedules the TiKV cluster. JuiceFS will interact with TiKV through this address. The other two addresses are Prometheus and Grafana services, which are used for monitoring and data visualization of TiKV clusters.<\/p>\n<p><strong>Note<\/strong>: The playground component of TiUP is mainly used to quickly build a minimal test cluster of TiDB and TiKV in the local environment. For production environment deployment, please refer to <a href=\"https:\/\/tikv.org\/docs\/5.1\/deploy\/install\/install\/\">TiKV Official Document<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Install_JuiceFS\"><\/span>Install JuiceFS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>JuiceFS supports Linux, Windows, and macOS systems. You only need to download the corresponding version of the client program and place it in the executable path of the system. For example, I use a Linux distribution, so I can install the latest version of the client by executing the following commands in sequence.<\/p>\n<p>Check the current system information and set temporary environment variables:<\/p>\n<pre><code class=\"language-shell\">JFS_LATEST_TAG=$(curl -s https:\/\/api.github.com\/repos\/juicedata\/juicefs\/releases\/latest | grep 'tag_name' | cut -d '\"' -f 4 | tr -d 'v')\n<\/code><\/pre>\n<p>Download the latest version of the JuiceFS client corresponding to your system:<\/p>\n<pre><code class=\"language-shell\">wget \"https:\/\/github.com\/juicedata\/juicefs\/releases\/download\/v${JFS_LATEST_TAG}\/juicefs-${JFS_LATEST_TAG}-linux-amd64.tar.gz\"\n<\/code><\/pre>\n<p>Unzip the package:<\/p>\n<pre><code class=\"language-shell\">mkdir juice &amp;&amp; tar -zxvf \"juicefs-${JFS_LATEST_TAG}-linux-amd64.tar.gz\" -C juice\n<\/code><\/pre>\n<p>Install JuiceFS client to <code>\/usr\/local\/bin<\/code>:<\/p>\n<pre><code class=\"language-shell\">sudo install juice\/juicefs \/usr\/local\/bin\n<\/code><\/pre>\n<p>Execute the command and see the help information returned, which means that the client is installed successfully.<\/p>\n<pre><code class=\"language-shell\">juicefs\n\nNAME:\n  juicefs - A POSIX file system built on Redis and object storage.\n\nUSAGE:\n  juicefs [global options] command [command options] [arguments...]\n\nVERSION:\n  0.16.1 (2021-08-16 2edcfc0)\n\nCOMMANDS:\n  format   format a volume\n  mount    mount a volume\n  umount   unmount a volume\n  gateway  S3-compatible gateway\n  sync     sync between two storage\n  rmr      remove directories recursively\n  info     show internal information for paths or inodes\n  bench    run benchmark to read\/write\/stat big\/small files\n  gc       collect any leaked objects\n  fsck     Check consistency of file system\n  profile  analyze access log\n  stats    show runtime stats\n  status   show status of JuiceFS\n  warmup   build cache for target directories\/files\n  dump     dump metadata into a JSON file\n  load     load metadata from a previously dumped JSON file\n  help, h  Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n  --verbose, --debug, -v  enable debug log (default: false)\n  --quiet, -q             only warning and errors (default: false)\n  --trace                 enable trace log (default: false)\n  --no-agent              Disable pprof (:6060) and gops (:6070) agent (default: false)\n  --help, -h              show help (default: false)\n  --version, -V           print only the version (default: false)\n\nCOPYRIGHT:\n  AGPLv3\n<\/code><\/pre>\n<p>You can also visit the <a href=\"https:\/\/github.com\/juicedata\/juicefs\/releases\">JuiceFS GitHub Releases<\/a> page to select other versions for manual installation.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Use_TiKV_in_JuiceFS\"><\/span>Use TiKV in JuiceFS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Here I refer to <a href=\"https:\/\/github.com\/juicedata\/juicefs-quickstart\">JuiceFS Quick Start Guide<\/a>, and build a MinIO object storage locally. The access address is http:\/\/127.0.0.1:9000, and <code>Access Key ID<\/code> and <code>Access Key Secret<\/code> are both <code>minioadmin<\/code>.<\/p>\n<h3>Create a file system<\/h3>\n<p>The following command uses the <code>format<\/code> subcommand provided by the JuiceFS client to create a file system named <code>mystor<\/code>. In this command, TiKV database address format uses the PD address of the TiKV cluster:<\/p>\n<pre><code class=\"language-shell\">juicefs format \n    --storage minio \n    --bucket[ http:\/\/127.0.0.1:9000\/mystor](http:\/\/127.0.0.1:9000\/mystor) \n    --access-key minioadmin \n    --secret-key minioadmin \n    tikv:\/\/127.0.0.1:2379\/mystor \n    mystor\n<\/code><\/pre>\n<p>Parameter Description:<\/p>\n<ul>\n<li><code>--storage<\/code>: Specifies the data storage engine, here is <code>minio<\/code>.<\/li>\n<li><code>--bucket<\/code>: Specifies the bucket access URL. In this case, it is the bucket <code>mystor<\/code> I created in advance on MinIO.<\/li>\n<li><code>--access-key<\/code> and <code>--secret-key<\/code>: Specifies the secret key for accessing the object storage service API.<\/li>\n<li>When you use TiKV to store metadata, set the PD address of the cluster. When multiple file systems or applications share the same TiKV, it is recommended to add a prefix. In this case, the prefix <code>mystor<\/code> is specified in the PD address.<\/li>\n<\/ul>\n<p>If you see output similar to the following, the file system was created successfully:<\/p>\n<pre><code>2021\/08\/12 23:28:36.932241 juicefs[101222] &lt;INFO&gt;: Meta address: tikv:\/\/127.0.0.1:2379\/mystor\n[2021\/08\/12 23:28:36.932 +08:00] [INFO] [client.go:214] [\"[pd] create pd client with endpoints\"] [pd-address=\"[127.0.0.1:2379]\"]\n[2021\/08\/12 23:28:36.935 +08:00] [INFO] [base_client.go:346] [\"[pd] switch leader\"] [new-leader=http:\/\/127.0.0.1:2379] [old-leader=]\n[2021\/08\/12 23:28:36.935 +08:00] [INFO] [base_client.go:126] [\"[pd] init cluster id\"] [cluster-id=6995548759432331426]\n[2021\/08\/12 23:28:36.935 +08:00] [INFO] [client.go:238] [\"[pd] create tso dispatcher\"] [dc-location=global]\n2021\/08\/12 23:28:36.936892 juicefs[101222] &lt;INFO&gt;: Data uses minio:\/\/127.0.0.1:9000\/mystor\/mystor\/\n2021\/08\/12 23:28:36.976722 juicefs[101222] &lt;INFO&gt;: Volume is formatted as {Name:mystor UUID:0c9594a8-fe2c-463c-a4b6-eb815f38c843 Storage:minio Bucket:http:\/\/127.0.0.1:9000\/mystor AccessKey:minioadmin SecretKey:removed BlockSize:4096 Compression:none Shards:0 Partitions:0 Capacity:0 Inodes:0 EncryptKey:}\n<\/code><\/pre>\n<h3>Mount the file system<\/h3>\n<p>Use the <code>mount<\/code> subcommand to mount the file system to the <code>jfs<\/code> directory under the current user&#8217;s home directory:<\/p>\n<pre><code class=\"language-shell\">sudo juicefs mount -d tikv:\/\/127.0.0.1:2379\/mystor ~\/jfs\n<\/code><\/pre>\n<p>The <code>sudo<\/code> command is used here to mount the file system as a super user. The purpose is to allow JuiceFS to create and use the \/var\/jfsCache directory to cache data.<\/p>\n<p>If you see output similar to the following, the file system is mounted successfully:<\/p>\n<pre><code>2021\/08\/12 23:34:44.288136 juicefs[101873] &lt;INFO&gt;: Meta address: tikv:\/\/127.0.0.1:2379\/mystor\n[2021\/08\/12 23:34:44.288 +08:00] [INFO] [client.go:214] [\"[pd] create pd client with endpoints\"] [pd-address=\"[127.0.0.1:2379]\"]\n[2021\/08\/12 23:34:44.291 +08:00] [INFO] [base_client.go:346] [\"[pd] switch leader\"] [new-leader=http:\/\/127.0.0.1:2379] [old-leader=]\n[2021\/08\/12 23:34:44.291 +08:00] [INFO] [base_client.go:126] [\"[pd] init cluster id\"] [cluster-id=6995548759432331426]\n[2021\/08\/12 23:34:44.291 +08:00] [INFO] [client.go:238] [\"[pd] create tso dispatcher\"] [dc-location=global]\n2021\/08\/12 23:34:44.296270 juicefs[101873] &lt;INFO&gt;: Data use minio:\/\/127.0.0.1:9000\/mystor\/mystor\/\n2021\/08\/12 23:34:44.296768 juicefs[101873] &lt;INFO&gt;: Disk cache (\/var\/jfsCache\/0c9594a8-fe2c-463c-a4b6-eb815f38c843\/): capacity (1024 MB), free ratio (10%), max pending pages (15)\n2021\/08\/12 23:34:44.800551 juicefs[101873] &lt;INFO&gt;: OK, mystor is ready at \/home\/herald\/jfs\n<\/code><\/pre>\n<p>Use the <code>df<\/code> command to see the mounting status of the file system:<\/p>\n<pre><code>df -Th\nFile system    type             capacity used usable used%  mount point\nJuiceFS:mystor fuse.juicefs       1.0P   64K  1.0P    1%   \/home\/herald\/jfs\n<\/code><\/pre>\n<p>After mounting, you can now store data in the <code>~\/jfs<\/code> directory just like using a local hard disk.<\/p>\n<h3>View file system information<\/h3>\n<p>The <code>status<\/code> subcommand can view the basic information and connection status of a file system.<\/p>\n<pre><code class=\"language-shell\">juicefs status tikv:\/\/127.0.0.1:2379\/mystor\n\n{\n \"Setting\": {\n   \"Name\": \"mystor\",\n   \"UUID\": \"9f50f373-a7ec-4d5b-b790-3defbf6d0509\",\n   \"Storage\": \"minio\",\n   \"Bucket\": \"http:\/\/127.0.0.1:9000\/mystor\",\n   \"AccessKey\": \"minioadmin\",\n   \"SecretKey\": \"removed\",\n   \"BlockSize\": 4096,\n   \"Compression\": \"none\",\n   \"Shards\": 0,\n   \"Partitions\": 0,\n   \"Capacity\": 0,\n   \"Inodes\": 0\n },\n\n \"Sessions\": [\n   {\n     \"Sid\": 2,\n     \"Heartbeat\": \"2021-08-13T10:43:35+08:00\",\n     \"Version\": \"0.16-dev (2021-08-12 a871c3d)\",\n     \"Hostname\": \"herald-manjaro\",\n     \"MountPoint\": \"\/home\/herald\/jfs\",\n     \"ProcessID\": 6309\n   }\n ]\n}\n<\/code><\/pre>\n<p>In the output, you can learn more about the data storage engine used by the file system and the status of the host that the file system mounts on.<\/p>\n<p>In addition, v0.16 and above can also learn the detailed configuration of the file system by viewing the <code>.config<\/code> virtual file in the root directory of the mount point:<\/p>\n<pre><code class=\"language-shell\">sudo cat ~\/jfs\/.config\n\n{\n\"Meta\": {\n \"Strict\": true,\n \"Retries\": 10,\n \"CaseInsensi\": false,\n \"ReadOnly\": false,\n \"OpenCache\": 0,\n \"MountPoint\": \"jfs\",\n \"Subdir\": \"\"\n},\n\n\"Format\": {\n \"Name\": \"myabc\",\n \"UUID\": \"e9d8373c-7ced-49d9-a033-75f6abb44854\",\n \"Storage\": \"minio\",\n \"Bucket\": \"http:\/\/127.0.0.1:9000\/mystor\",\n \"AccessKey\": \"minioadmin\",\n \"SecretKey\": \"removed\",\n \"BlockSize\": 4096,\n \"Compression\": \"none\",\n \"Shards\": 0,\n \"Partitions\": 0,\n \"Capacity\": 0,\n \"Inodes\": 0\n},\n\n\"Chunk\": {\n \"CacheDir\": \"\/var\/jfsCache\/e9d8373c-7ced-49d9-a033-75f6abb44854\",\n \"CacheMode\": 384,\n \"CacheSize\": 1024,\n \"FreeSpace\": 0.1,\n \"AutoCreate\": true,\n \"Compress\": \"none\",\n \"MaxUpload\": 20,\n \"Writeback\": false,\n \"Partitions\": 0,\n \"BlockSize\": 4194304,\n \"GetTimeout\": 60000000000,\n \"PutTimeout\": 60000000000,\n \"CacheFullBlock\": true,\n \"BufferSize\": 314572800,\n \"Readahead\": 0,\n \"Prefetch\": 1\n},\n\n\"Version\": \"0.16.1 (2021-08-16 2edcfc0)\",\n\"Mountpoint\": \"jfs\"\n}\n<\/code><\/pre>\n<p><strong>Notice<\/strong>: It is important to note that this article uses a local demo environment. If you need to share and mount the same JuiceFS file system on multiple hosts, make sure that the deployed object storage and TiKV cluster can be accessed by all hosts.<\/p>\n<h3>Unmount the file system<\/h3>\n<p>You can use the <code>umount<\/code> subcommand to unmount the file system, for example:<\/p>\n<pre><code class=\"language-shell\">sudo juicefs umount ~\/jfs\n<\/code><\/pre>\n<p><strong>Warning<\/strong>: Force the unmount of the file system in use may cause data damage or loss, please be careful.<\/p>\n<h3>Mount at boot<\/h3>\n<p>If you don&#8217;t want to manually remount JFS on every reboot, you can set up auto mounting.<\/p>\n<p>First, rename the <code>juicefs<\/code> client to <code>mount.juicefs<\/code> and copy it to the <code>\/sbin\/<\/code> directory:<\/p>\n<pre><code class=\"language-shell\">sudo cp \/usr\/local\/bin\/juicefs \/sbin\/mount.juicefs\n<\/code><\/pre>\n<p>Edit the <code>\/etc\/fstab<\/code> configuration file and add a new record:<\/p>\n<pre><code>tikv:\/\/127.0.0.1:2379\/mystor    \/home\/herald\/jfs       juicefs     _netdev,cache-size=20480     0  0\n<\/code><\/pre>\n<p>In the mount option, <code>cache-size=20480<\/code> means allocating 20GB of local disk space to JuiceFS cache. Please determine the allocated size according to the actual hardware conditions. Generally speaking, the more cache space for JuiceFS, the better performance.<\/p>\n<p>You can adjust the <a href=\"https:\/\/github.com\/juicedata\/juicefs\/blob\/7ae0a299fcced328fce62378035a95a8db114ef9\/docs\/en\/reference\/fuse_mount_options.md\">FUSE mount options<\/a> in the above configuration according to your needs.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Benchmarking_TiKV_MySQL_and_Redis\"><\/span>Benchmarking TiKV, MySQL, and Redis<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To understand the differences between TiKV and other backends, we benchmarked the performance of TiKV, MySQL, and Redis using Golang&#8217;s benchmarking tools. In the same environment, the three databases&#8217; performance varies a lot:<\/p>\n<img loading=\"lazy\" decoding=\"async\" width=\"687\" height=\"871\" class=\"wp-image-448\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2021\/09\/juicefs-benchmarking-tikv-mysql-redis.png\" alt=\"Benchmarking the performance of TiKV, MySQL, and Redis\" srcset=\"https:\/\/static.pingcap.com\/files\/2021\/09\/juicefs-benchmarking-tikv-mysql-redis.png 687w, https:\/\/static.pingcap.com\/files\/2021\/09\/juicefs-benchmarking-tikv-mysql-redis-237x300.png 237w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/>\n<p>The figures in the table refer to the duration (in microseconds) of each operation, so the smaller duration, the better performance. The digits in parentheses are the ratio to that of Redis-Always.<\/p>\n<p>Both Redis and MySQL have only one replica in the benchmarking, while TiKV uses a three-replica distributed architecture. <strong>Even though TiKV has three replicas, it still performs better than MySQL.<\/strong> TiKV is 2~3 times slower than Redis in terms of metadata operations alone. However, when it comes to data storage, object storage latency takes large proportions, so in real-life business, the latency gap between TiKV and Redis is much smaller, and, more importantly, TiKV outperforms Redis in terms of reliability and scalability.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Summary\"><\/span>Summary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>For JuiceFS, the support for TiKV as a metadata engine is a milestone. As a new choice for JuiceFS users, TiKV provides easier horizontal scaling than Redis and better performance than MySQL and PostgreSQL.<\/p>\n<p>JuiceFS is an open-source project under the AGPLv3, and its development is inseparable from everyone&#8217;s contribution. An article, a page of documentation, an idea, a suggestion, a report, or a bug fix, no matter how big or small the contribution is, is the driving force for the progress of an open-source project.<\/p>\n<p>If you&#8217;re interested in JuiceFS, here is what you can do for the community:<\/p>\n<ul>\n<li>Starring the <a href=\"https:\/\/github.com\/juicedata\/juicefs\">project<\/a> on GitHub<\/li>\n<li>Post your opinion on the <a href=\"https:\/\/github.com\/juicedata\/juicefs\/discussions\">Forum<\/a><\/li>\n<li>Pick a task from <a href=\"https:\/\/github.com\/juicedata\/juicefs\/issues\">Issues<\/a><\/li>\n<li>Improve our <a href=\"https:\/\/github.com\/juicedata\/juicefs\/tree\/main\/docs\">document<\/a><\/li>\n<li>Share anything about JuiceFS on your blog, Twitter, Vlog, or other social media.<\/li>\n<li>Join our <a href=\"https:\/\/juicefs.slack.com\/\">Slack channel<\/a><\/li>\n<li>Tell more people about JuiceFS<\/li>\n<\/ul>\n<p>We sincerely welcome everyone who loves open source to join our community and make JuiceFS better together!<\/p>\n<p><em>An original version of this article was published on <a href=\"https:\/\/juicefs.medium.com\/getting-started-with-juicefs-using-tikv-database-b1a585633b1d\">Medium<\/a>.<\/em><\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>JuiceFS is an open-source, cloud-native distributed file system that allows users to freely choose the backend storage engine. This post introduces how to use TiKV as a metadata engine for JuiceFS.<\/p>","protected":false},"author":52,"featured_media":450,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[18],"tags":[22,29],"class_list":["post-447","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-community","tag-tikv","tag-tutorial"],"acf":[],"featured_image_src":"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png","author_info":{"display_name":"Herald Yu","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/herald-yu\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Getting Started with JuiceFS Using TiKV | TiDB<\/title>\n<meta name=\"description\" content=\"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post &quot;Getting Started with JuiceFS Using TiKV&quot; here.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/get-started-with-juicefs-using-tikv\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting Started with JuiceFS Using TiKV | TiDB\" \/>\n<meta property=\"og:description\" content=\"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post &quot;Getting Started with JuiceFS Using TiKV&quot; here.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/get-started-with-juicefs-using-tikv\/\" \/>\n<meta property=\"og:site_name\" content=\"TiDB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/pingcap2015\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-17T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-20T13:38:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1501\" \/>\n\t<meta property=\"og:image:height\" content=\"501\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Herald Yu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:site\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Herald Yu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/\"},\"author\":{\"name\":\"Herald Yu\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/f2a1bea47a5b6dfa6c9e00dbd7181c41\"},\"headline\":\"Getting Started with JuiceFS Using TiKV\",\"datePublished\":\"2021-09-17T00:00:00+00:00\",\"dateModified\":\"2024-08-20T13:38:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/\"},\"wordCount\":1364,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png\",\"keywords\":[\"TiKV\",\"Tutorial\"],\"articleSection\":[\"Community\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/\",\"name\":\"Getting Started with JuiceFS Using TiKV | TiDB\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png\",\"datePublished\":\"2021-09-17T00:00:00+00:00\",\"dateModified\":\"2024-08-20T13:38:36+00:00\",\"description\":\"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \\\"Getting Started with JuiceFS Using TiKV\\\" here.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#primaryimage\",\"url\":\"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png\",\"width\":1501,\"height\":501},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting Started with JuiceFS Using TiKV\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.pingcap.com\/#website\",\"url\":\"https:\/\/www.pingcap.com\/\",\"name\":\"TiDB\",\"description\":\"TiDB | SQL at Scale\",\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.pingcap.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.pingcap.com\/#organization\",\"name\":\"PingCAP\",\"url\":\"https:\/\/www.pingcap.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"width\":811,\"height\":232,\"caption\":\"PingCAP\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/pingcap2015\",\"https:\/\/x.com\/PingCAP\",\"https:\/\/linkedin.com\/company\/pingcap\",\"https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/f2a1bea47a5b6dfa6c9e00dbd7181c41\",\"name\":\"Herald Yu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"caption\":\"Herald Yu\"},\"description\":\"Director of Marketing at Juicedata\",\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/herald-yu\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Getting Started with JuiceFS Using TiKV | TiDB","description":"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \"Getting Started with JuiceFS Using TiKV\" here.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pingcap.com\/ko\/blog\/get-started-with-juicefs-using-tikv\/","og_locale":"ko_KR","og_type":"article","og_title":"Getting Started with JuiceFS Using TiKV | TiDB","og_description":"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \"Getting Started with JuiceFS Using TiKV\" here.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/get-started-with-juicefs-using-tikv\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2021-09-17T00:00:00+00:00","article_modified_time":"2024-08-20T13:38:36+00:00","og_image":[{"width":1501,"height":501,"url":"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png","type":"image\/png"}],"author":"Herald Yu","twitter_card":"summary_large_image","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Herald Yu","Est. reading time":"10\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/"},"author":{"name":"Herald Yu","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/f2a1bea47a5b6dfa6c9e00dbd7181c41"},"headline":"Getting Started with JuiceFS Using TiKV","datePublished":"2021-09-17T00:00:00+00:00","dateModified":"2024-08-20T13:38:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/"},"wordCount":1364,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png","keywords":["TiKV","Tutorial"],"articleSection":["Community"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/","url":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/","name":"Getting Started with JuiceFS Using TiKV | TiDB","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png","datePublished":"2021-09-17T00:00:00+00:00","dateModified":"2024-08-20T13:38:36+00:00","description":"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \"Getting Started with JuiceFS Using TiKV\" here.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#primaryimage","url":"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png","width":1501,"height":501},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/get-started-with-juicefs-using-tikv\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"Getting Started with JuiceFS Using TiKV"}]},{"@type":"WebSite","@id":"https:\/\/www.pingcap.com\/#website","url":"https:\/\/www.pingcap.com\/","name":"\ud2f0DB","description":"TiDB | SQL at Scale","publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pingcap.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.pingcap.com\/#organization","name":"PingCAP","url":"https:\/\/www.pingcap.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/","url":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","width":811,"height":232,"caption":"PingCAP"},"image":{"@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/pingcap2015","https:\/\/x.com\/PingCAP","https:\/\/linkedin.com\/company\/pingcap","https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA"]},{"@type":"Person","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/f2a1bea47a5b6dfa6c9e00dbd7181c41","name":"Herald Yu","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/","url":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","contentUrl":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","caption":"Herald Yu"},"description":"Director of Marketing at Juicedata","url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/herald-yu\/"}]}},"grav_blocks":false,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/get-started-with-juicefs-using-tikv\/\"><div class=\"card-resource__image-container\"><img class=\"card-resource__image\" alt=\"get-started-with-juicefs-using-tikv.png\" src=\"https:\/\/static.pingcap.com\/files\/2021\/09\/get-started-with-juicefs-using-tikv.png\" loading=\"lazy\" width=1501 height=501 \/><\/div><div class=\"card-resource__content-container\"><div class=\"card-resource__content-head\"><div class=\"card-resource__category\">Community<\/div><\/div><h5 class=\"card-resource__title\">Getting Started with JuiceFS Using TiKV<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/447","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=447"}],"version-history":[{"count":6,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/447\/revisions"}],"predecessor-version":[{"id":18948,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/447\/revisions\/18948"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media\/450"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=447"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=447"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}